Condividi tramite


Come configurare un'indirizzo di ricezione WCF-CustomIsolated

È possibile configurare gli indirizzi di ricezione WCF-CustomIsolated a livello di codice o tramite la Console di amministrazione BizTalk.

Proprietà di configurazione

Il modello a oggetti di BizTalk Explorer consente di creare e configurare indirizzi di ricezione a livello di codice. Il modello a oggetti di BizTalk Explorer espone l'interfaccia di configurazione della posizione di ricezioneIReceiveLocation con una proprietà di lettura/scrittura TransportTypeData . Questa proprietà accetta un elenco proprietà di configurazione degli indirizzi di ricezione WCF-CustomIsolated sotto forma di coppia nome-valore di stringhe XML. Per impostare questa proprietà nel modello a oggetti di BizTalk Explorer, è necessario impostare la proprietà InboundTransportLocation dell'interfaccia IReceiveLocation .

La proprietà TransportTypeData dell'interfaccia IReceiveLocation non deve essere impostata. in quanto l'adapter WCF-CustomIsolated utilizza i valori predefiniti per la configurazione dell'indirizzo di ricezione WCF-CustomIsolated come indicato nella tabella riportata di seguito.

Nella tabella seguente sono elencate le proprietà di configurazione che è possibile impostare nel modello a oggetti di BizTalk Explorer per l'indirizzo di ricezione WCF-CustomIsolated.

Nome proprietà Type Descrizione
Identità BLOB XML

Esempio:

<identity>

<userPrincipalName value="username@contoso.com" />

</Identità>
Specificare l'identità del servizio fornito dall'indirizzo di ricezione. I valori che è possibile specificare per la proprietà Identity differiscono in base alla configurazione di sicurezza. Queste impostazioni consentono al client di autenticare l'indirizzo di ricezione. Nel processo di handshake tra il client e il servizio, l'infrastruttura WCF (Windows Communication Foundation) garantirà che l'identità del servizio previsto corrisponda ai valori di questo elemento.

Il valore predefinito è una stringa vuota.
BindingType Enumerazione

- basicHttpBinding
- Custombinding
- mexHttpBinding
- mexHttpsBinding
- mexNamedPipeBinding
- mexTcpBinding
- Netmsmqbinding
- Netnamedpipebinding
- Netpeertcpbinding
- Nettcpbinding
- wsDualHttpBinding
- wsFederationHttpBinding
- wsHttpBinding
Specificare il tipo di binding da impostare per l'endpoint utilizzato da questo indirizzo di ricezione. Nota: Se si utilizza un'associazione personalizzata, la proprietà BindingType può essere configurata con le associazioni personalizzate. Per altre informazioni su come usare l'associazione personalizzata, vedere How to Enable the WCF Extensibility Points with the WCF Adapters.For more information about how to use custom binding, see How to Enable the WCF Extensibility Points with the WCF Adapters.

Il valore predefinito è una stringa vuota.
Bindingconfiguration BLOB XML

Esempio:

<binding name="wsHttpBinding" transactionFlow="true"><security><message clientCredentialType="UserName" /></security></binding>
Specificare una stringa XML con l'elemento di <associazione> per configurare tipi diversi di associazioni predefinite fornite da Windows Communication Foundation (WCF). Per ulteriori informazioni sul binding fornito dal sistema e sul binding personalizzato, vedere gli argomenti pertinenti in Vedere anche. Nota: BizTalk Server non supporta tutti i tipi degli elementi dell'estensione di associazione che è possibile configurare con la proprietà BindingConfiguration.

Il valore predefinito è una stringa vuota.
ServiceBehaviorConfiguration BLOB XML

Esempio:

<behavior name="SampleServiceBehavior"><serviceAuthorization principalPermissionMode="UseAspNetRoles" /><serviceCredentials><serviceCertificate findValue="539d9ab3089bb6dc187fa7dbb382cf01f8d78f5f" storeLocation="CurrentUser" x509FindType="FindByThumbprint" /></serviceCredentials><serviceMetadata httpGetEnabled="true" /></behavior>
Specificare una stringa XML con l'elemento behavior> dell'elemento<<serviceBehaviors> per configurare le impostazioni di comportamento di un servizio WCF. Per altre informazioni sull'elemento <serviceBehaviors> , vedere l'argomento appropriato in Vedere anche.

Il valore predefinito è una stringa vuota.
EndpointBehaviorConfiguration BLOB XML

Esempio:

<behavior name="sampleBehavior"><callbackTimeouts /></behavior>
Specificare una stringa XML con l'elemento <behavior> dell'elemento <endpointBehaviors> per configurare le impostazioni di comportamento di un endpoint WCF. Per altre informazioni sull'elemento <endpointBehaviors> , vedere l'argomento appropriato in Vedere anche. Nota: BizTalk Server non supporta tutti i tipi di elementi di estensione del comportamento che è possibile configurare con la proprietà EndpointBehaviorConfiguration.

Il valore predefinito è una stringa vuota.
CredentialType Enumerazione

- Nessuno: non usare credenziali quando questa posizione di ricezione invia messaggi di richiesta per eseguire il polling di un servizio esterno o questa posizione di ricezione non deve eseguire il polling di alcun servizio esterno.
- IssueTicket: usare Enterprise Single Sign-On (SSO) per recuperare le credenziali client per emettere un ticket SSO. Questa opzione richiede l'utilizzo della modalità di protezione che consente all'indirizzo di ricezione corrente di rappresentare l'account utente per emettere un ticket SSO.
- UserAccount: usare le credenziali specificate nelle proprietà Nome utente e Password quando questa posizione di ricezione invia messaggi di richiesta per eseguire il polling di un servizio esterno.
- GetCredentials: usare l'applicazione affiliata SSO specificata nella proprietà AffiliateApplicationName quando questa posizione di ricezione invia messaggi di richiesta per eseguire il polling di un servizio esterno.
Specificare il tipo di credenziali da utilizzare per questo indirizzo di ricezione durante il polling di un servizio esterno.

Valore predefinito: Nessuno
UserName string Specificare il nome utente per l'indirizzo di ricezione corrente da utilizzare durante il polling di un servizio esterno al fine di recuperare messaggi di risposta. Questa proprietà è obbligatoria quando la proprietà CredentialType è impostata su UserAccount.

Il valore predefinito è una stringa vuota.
Password string Specificare la password per l'indirizzo di ricezione corrente da utilizzare durante il polling di un servizio esterno al fine di recuperare messaggi di risposta. Questa proprietà è obbligatoria quando la proprietà CredentialType è impostata su UserAccount.

Il valore predefinito è una stringa vuota.
AffiliateApplicationName string Specificare l'applicazione affiliata SSO per restituire le credenziali esterne da utilizzare quando l'indirizzo di ricezione corrente invia messaggi di sollecitazione per eseguire il polling di un servizio esterno. L'applicazione affiliata SSO specificata deve disporre di un mapping tra l'account Windows con cui viene eseguito questo indirizzo di ricezione e l'account del servizio esterno. Questa proprietà è obbligatoria quando la proprietà CredentialType è impostata su GetCredentials.

Il valore predefinito è una stringa vuota.
OrderedProcessing Boolean Specifica se conservare l'ordine dei messaggi durante l'elaborazione degli stessi.

Valore predefinito: False
InboundBodyLocation Enumerazione

- UseBodyElement : usare il contenuto dell'elemento SOAP Body di un messaggio in arrivo per creare la parte del corpo del messaggio BizTalk. Se l'elemento Body dispone di più di un elemento figlio, solo il primo elemento diventa la parte corpo del messaggio BizTalk.
- UseEnvelope : creare la parte del corpo del messaggio BizTalk dall'intera busta SOAP di un messaggio in ingresso.
- UseBodyPath : usare l'espressione del percorso del corpo nella proprietà InboundBodyPathExpression per creare la parte del corpo del messaggio BizTalk. Tale espressione viene valutata in base all'elemento figlio immediato dell'elemento SOAP Body di un messaggio in arrivo. Questa proprietà è valida solo per le porte sollecitazione-risposta.

Per altre informazioni su come usare la proprietà InboundBodyLocation , vedere Specifica del corpo del messaggio per gli adapter WCF.
Specificare la selezione dei dati per l'elemento SOAP Body dei messaggi WCF in ingresso.

Valore predefinito: UseBodyElement
InboundBodyPathExpression string

Per altre informazioni su come usare la proprietà InboundBodyPathExpression , vedere Schema e proprietà delle schede WCF.
Specificare l'espressione percorso del corpo per identificare una parte specifica di un messaggio in arrivo utilizzata per creare la parte corpo del messaggio BizTalk. Questa espressione del percorso del corpo viene valutata rispetto all'elemento figlio immediato del nodo SOAP Body di un messaggio in ingresso. Se questa espressione percorso del corpo restituisce più di un nodo, solo il primo nodo verrà scelto per la parte corpo del messaggio BizTalk. Questa proprietà è necessaria se la proprietà InboundBodyLocation è impostata su UseBodyPath.

Il valore predefinito è una stringa vuota.
InboundNodeEncoding Enumerazione

- Base64 - Codifica Base64 .
- Esadecimale : codifica esadecimale .
- Stringa - Codifica di testo - UTF-8.
- XML : gli adattatori WCF creano il corpo del messaggio BizTalk con il codice XML esterno del nodo selezionato dall'espressione percorso corpo in InboundBodyPathExpression.
Specificare il tipo di codifica usato dall'adattatore di ricezione WCF-CustomIsolated per decodificare il nodo identificato dall'espressione percorso del corpo specificata in InboundBodyPathExpression. Questa proprietà è necessaria se la proprietà InboundBodyLocation è impostata su UseBodyPath.

Valore predefinito: XML
OutboundBodyLocation Enumerazione

- UseBodyElement : usare la parte del corpo del messaggio BizTalk per creare il contenuto dell'elemento SOAP Body per un messaggio di risposta in uscita.
- UseTemplate : usare il modello fornito nella proprietà OutboundXMLTemplate per creare il contenuto dell'elemento SOAP Body per un messaggio di risposta in uscita.

Per altre informazioni su come usare la proprietà OutboundBodyLocation , vedere Specifica del corpo del messaggio per gli adapter WCF.
Specificare la selezione dei dati per l'elemento SOAP Body dei messaggi WCF in uscita. La proprietà è valida solo per gli indirizzi di ricezione di tipo richiesta-risposta.

Valore predefinito: UseBodyElement
OutboundXMLTemplate string

Per altre informazioni su come usare la proprietà OutboundXMLTemplate , vedere Specifica del corpo del messaggio per gli adapter WCF.
Specificare il modello formattato XML per il contenuto dell'elemento SOAP Body di un messaggio di risposta in uscita. Questa proprietà è necessaria se la proprietà OutboundBodyLocation è impostata su UseTemplate. La proprietà è valida solo per gli indirizzi di ricezione di tipo richiesta-risposta.

Il valore predefinito è una stringa vuota.
DisableLocationOnFailure Boolean Specificare se disattivare l'indirizzo di ricezione per il quale non è possibile eseguire l'elaborazione in ingresso a causa di un problema della pipeline di ricezione o di un errore di routing.

Impostazione predefinita: False
SuspendMessageOnFailure Boolean Specificare se sospendere il messaggio di richiesta per cui non è possibile eseguire l'elaborazione in ingresso a causa di un problema della pipeline di ricezione o di un errore di routing.

Valore predefinito: True
Includeexceptiondetailinfaults Boolean Specificare se includere le informazioni sulle eccezioni gestite nei dettagli relativi agli errori SOAP restituiti al client a scopo di debug.

Impostazione predefinita: False
ReferencedBindings BLOB XML

Esempio:

<BindingConfiguration vt="8">

<wsFederationHttpBinding>

<nome di associazione="sampleBinding">

<modalità di sicurezza="Message">

<message issuedKeyType="AsymmetricKey">

<issuer address="; binding="wsFederationHttpBinding" bindingConfiguration="http://www.contoso.com/samplests"contosoSTSBinding"/>

</Messaggio>

</Sicurezza>

</Associazione>

</wsFederationHttpBinding>

</BindingConfiguration>

<ReferencedBindings vt="8">

<bindings>

<wsFederationHttpBinding>

<nome di associazione="contosoSTSBinding">

<modalità di sicurezza="Message">

<message negotiateServiceCredential="false">

<issuer address="" bindingConfiguration="http://northwind.com/samplestsnorthwindBinding" binding="wsHttpBinding">

</Emittente>

</Messaggio>

</Sicurezza>

</Associazione>

</wsFederationHttpBinding>

<wsHttpBinding>

<nome di associazione="northwindBinding">

<modalità di sicurezza="Message">

<message clientCredentialType="Certificate" />

</Sicurezza>

</Associazione>

</wsHttpBinding>

</Associazioni>

</ReferencedBindings>

Nota: La proprietà ReferencedBinding non deve contenere la configurazione dell'associazione usata nella proprietà BindingConfiguration .
Specificare le configurazioni di associazione a cui fa riferimento l'attributo bindingConfiguration dell'elemento <autorità di certificazione> per wsFederationHttpBinding e customBinding, che indica il servizio token di sicurezza (STS) che rilascia token di sicurezza. Per altre informazioni sull'elemento emittente, vedere la <documentazione dell'autorità di certificazione>>in Microsoft Learn.<

Le informazioni di associazione, incluso l'elemento autorità di certificazione> per wsFederationHttpBinding e customBinding, possono essere configurate tramite la< proprietà BindingConfiguration delle WCF-Custom e delle schede di WCF-CustomIsolated. Tutte le configurazioni di associazione a cui si fa riferimento per questa proprietà devono essere inserite sotto forma di <elemento binding.>

Nota:

- Non è possibile configurare questa proprietà nella scheda Binding nella finestra di dialogo Proprietà trasporto. È possibile importare ed esportare questa proprietà tramite la scheda Import/Export nella finestra di dialogo Proprietà trasporto delle schede WCF-Custom e WCF-CustomIsolated.

- L'attributo bindingConfiguration dell'elemento <emittente> deve fare riferimento a un nome di associazione valido in questa proprietà.

- L'elemento <emittente> nelle configurazioni di associazione a cui si fa riferimento può fare riferimento anche a una configurazione di associazione diversa in questa proprietà, se questa catena di riferimento non crea una dipendenza circolare.

Il valore predefinito è una stringa vuota.

Come configurare un indirizzo di ricezione WCF-CustomIsolated con la Console di amministrazione BizTalk

È possibile impostare le variabili dell'adapter dell'indirizzo di ricezione WCF-CustomIsolated nella Console di amministrazione BizTalk. Se alcune proprietà non vengono impostate nell'indirizzo di ricezione, verranno utilizzati i valori predefiniti del gestore di ricezione impostati nella Console di amministrazione BizTalk.

Nota

Prima di completare la seguente procedura, è necessario avere già aggiunto una porta di ricezione. Per altre informazioni, vedere Come creare una porta di ricezione.

Configurare le variabili per un percorso di ricezione WCF-CustomIsolated

  1. Se si prevede di utilizzare i punti di estendibilità WCF quali gli elementi di binding personalizzati, l'elemento di comportamento personalizzato e i componenti di canale personalizzati durante la configurazione dell'adapter WCF-CustomIsolated, è necessario aggiungere gli assembly che implementano i punti di estendibilità e tutti gli assembly dipendenti alla Global Assembly Cache nel computer di elaborazione BizTalk (computer di runtime) e nel computer di amministrazione. È inoltre necessario registrare i componenti di estensione nel file machine.config. Per altre informazioni su come usare i punti di estendibilità WCF con l'adapter WCF CustomIsolated, vedere How to Enable the WCF Extensibility Points with the WCF Adapters.For more information about how to use the WCF extensibility points with the WCF Extensibility Points with the WCF Adapters.

  2. Nella console amministrazione BizTalk espandere BizTalk Server Amministrazione, espandere Gruppo BizTalk, espandere Applicazioni e quindi espandere l'applicazione in cui si vuole creare un percorso di ricezione.

  3. Nel riquadro sinistro della Console di amministrazione BizTalk fare clic sul nodo Porta di ricezione . Nel riquadro destro fare quindi clic con il pulsante destro del mouse sulla porta di ricezione associata a un indirizzo di ricezione esistente o che si desidera associare a un nuovo indirizzo di ricezione e scegliere Proprietà.

  4. Nel riquadro sinistro della finestra di dialogo Proprietà porta di ricezione selezionare Percorsi di ricezione e quindi nel riquadro destro fare doppio clic su un percorso di ricezione esistente oppure fare clic su Nuovoper creare una nuova posizione di ricezione.

  5. Nella sezione Trasporto accanto a Tipo della finestra di dialogo Proprietà posizione di ricezione selezionare WCF-CustomIsolated nell'elenco a discesa e quindi fare clic su Configura.

  6. Nella scheda Generale della finestra di dialogo Proprietà trasporto isolato personalizzato WCF configurare l'indirizzo dell'endpoint e l'identità del servizio per il percorso di ricezione WCF-CustomIsolated. Per altre informazioni sulla scheda Generale nella finestra di dialogo Proprietà trasporto isolato WCF-Custom , vedere la finestra di dialogo Proprietà trasporto WCF-Custom, Ricezione, Generale nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

  7. Nella scheda Binding della finestra di dialogo Proprietà trasporto isolato personalizzato WCF configurare tipi diversi di associazioni predefinite o personalizzate per WCF. Per altre informazioni sulla scheda Binding nella finestra di dialogo Proprietà trasporto isolato WCF-Custom , vedere la finestra di dialogo Proprietà trasporto WCF-Custom, Ricezione, Associazione nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

  8. Nella scheda Comportamento della finestra di dialogo Proprietà trasporto isolato personalizzato WCF configurare i comportamenti dell'endpoint e del servizio per questo percorso di ricezione. Il comportamento dell'endpoint è un insieme di elementi estensione di comportamento che modificano o estendono le funzionalità del client o del servizio. Per altre informazioni sulla scheda Comportamento nella finestra di dialogo Proprietà trasporto isolato WCF-Custom , vedere la finestra di dialogo Proprietà trasporto WCF-Custom, Ricezione, Comportamento nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi dell'API per sviluppatori.

  9. Nella scheda Altro della finestra di dialogo Proprietà trasporto isolato personalizzato WCF configurare le credenziali da utilizzare per questo percorso di ricezione durante il polling di un servizio esterno e se il percorso di ricezione mantiene l'ordine dei messaggi durante l'elaborazione dei messaggi. Per altre informazioni sulla scheda Altro nella finestra di dialogo Proprietà trasporto isolato WCF-Custom , vedere la finestra di dialogo Proprietà trasporto WCF-Custom, Receive, Other nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi dell'API per sviluppatori.

  10. Nella scheda Messaggi della finestra di dialogo Proprietà trasporto isolato personalizzato WCF specificare la selezione dei dati per l'elemento SOAP Body. Per altre informazioni sulla scheda Messaggi nella finestra di dialogo Proprietà trasporto isolato WCF-Custom , vedere la finestra di dialogo Proprietà trasporto WCF-Custom, Ricezione, Messaggi nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi dell'API per sviluppatori.

  11. Nella finestra di dialogo Proprietà trasporto isolato PERSONALIZZATO WCF , nella scheda Importazione/Esportazione importare ed esportare le proprietà Indirizzo (URI) ed Identità endpoint nella scheda Generale , le informazioni sull'associazione nella scheda Binding e il comportamento dell'endpoint nella scheda Comportamento per questo percorso di ricezione. Per altre informazioni sulla scheda Importazione/Esportazione nella finestra di dialogo Proprietà trasporto isolato WCF-Custom , vedere la finestra di dialogo Proprietà trasporto WCF-Custom, Receive, Import-Export nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.

Configurare un percorso di ricezione WCF-CustomIsolated a livello di codice

Per impostare le proprietà, è possibile utilizzare il seguente formato:

<CustomProps>
  <InboundBodyPathExpression vt="8" />
  <InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
  <BindingConfiguration vt="8"><binding name="wsHttpBinding" transactionFlow="true"><security><message clientCredentialType="UserName" /></security></binding></BindingConfiguration>
  <OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
  <CredentialType vt="8">None</CredentialType>
  <Identity vt="8" />
  <ServiceBehaviorConfiguration vt="8"><behavior name="SampleServiceBehavior"><serviceAuthorization principalPermissionMode="UseAspNetRoles" /><serviceCredentials><serviceCertificate findValue="539d9ab3089bb6dc187fa7dbb382cf01f8d78f5f" storeLocation="CurrentUser" x509FindType="FindByThumbprint" /></serviceCredentials><serviceMetadata httpGetEnabled="true" /></behavior></ServiceBehaviorConfiguration>
  <OrderedProcessing vt="11">0</OrderedProcessing>
  <IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
  <AffiliateApplicationName vt="8" />
  <DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
  <SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
  <BindingType vt="8">wsHttpBinding</BindingType>
  <UserName vt="8" />
  <InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
  <EndpointBehaviorConfiguration vt="8"><behavior name="EndpointBehavior" /></EndpointBehaviorConfiguration>
  <OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>

Nel frammento di codice seguente viene illustrata la creazione di un indirizzo di ricezione WCF-CustomIsolated:

// Use BizTalk Explorer object model to create new WCF-CustomIsolated receive location
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
  <BindingConfiguration vt=""8""><binding name=""wsHttpBinding"" transactionFlow=""true""><security><message clientCredentialType=""UserName"" /></security></binding></BindingConfiguration>
  <BindingType vt=""8"">wsHttpBinding</BindingType>
</CustomProps>";
//requires project reference to \Program Files\Microsoft BizTalk Server 2009\Developer Tools\Microsoft.BizTalk.ExplorerOM.dll
BtsCatalogExplorer explorer = new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();
explorer.ConnectionString = connectionString;
// Add a new BizTalk application
Application application = explorer.AddNewApplication();
application.Name = "SampleBizTalkApplication1001";
// Save
explorer.SaveChanges();

// Add a new one-way receive port
IReceivePort receivePort = application.AddNewReceivePort(false);
receivePort.Name = "SampleReceivePort";
// Add a new one-way receive location
IReceiveLocation receiveLocation = receivePort.AddNewReceiveLocation();
receiveLocation.Name = "SampleReceiveLocation";
// Find a receive handler for WCF-CustomIsolated
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
    if("WCF-CustomIsolated" == explorer.ReceiveHandlers[i].TransportType.Name)
        break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "http://mycomputer/samplepath/sampleservice";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-CustomIsolated"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();

Vedere anche

Pubblicazione di servizi WCF con gli adapter di ricezione WCF isolati
Gestione di host e istanze host BizTalk
Come modificare account di servizio e password
Installazione di certificati per gli adapter WCF
Specifica del corpo del messaggio per gli adapter WCF
Configurazione dell'adapter WCF-CustomIsolated
Come creare un'applicazione affiliata
<comportamento> degli <endpointBehaviors>
<><comportamento> delle associazioni di <serviceBehaviors>