Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile configurare un percorso di ricezione WCF-NetTcp 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 percorsi di ricezione a livello di codice. Il modello a oggetti di BizTalk Explorer espone l'interfaccia di configurazione del percorso di ricezioneIReceiveLocation con una proprietà di lettura/scrittura TransportTypeData . Questa proprietà accetta un contenitore delle proprietà di configurazione della posizione di ricezione WCF-NetTcp 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 .
Non è necessario impostare la proprietà TransportTypeData dell'interfaccia IReceiveLocation . Se non è impostata, l'adattatore WCF-NetTcp usa i valori predefiniti per la configurazione della posizione di ricezione WCF-NetTcp, come indicato nella tabella seguente.
Nella tabella seguente sono elencate le proprietà di configurazione che è possibile impostare nel modello a oggetti di BizTalk Explorer per il percorso di ricezione WCF-NetTcp.
| Nome della proprietà | TIPO | Descrizione |
|---|---|---|
| Identità | XML Blob Esempio: <identità> <userPrincipalName value="username@contoso.com" /> </identità> |
Specificare l'identità del servizio fornito da questa locazione di ricezione. I valori che è possibile specificare per la proprietà Identity variano in base alla configurazione di sicurezza. Queste impostazioni consentono al client di autenticare questo luogo di ricezione. Nel processo di handshake tra il client e il servizio, l'infrastruttura di Windows Communication Foundation (WCF) garantirà che l'identità del servizio previsto corrisponda ai valori di questo elemento. Il valore predefinito è una stringa vuota. |
| OpenTimeout | system.TimeSpan | Specificare un valore di intervallo di tempo che indica l'intervallo di tempo specificato per il completamento di un'operazione di apertura del canale. Valore predefinito: 00:01:00 |
| SendTimeout | system.TimeSpan | Specificare un valore di intervallo di tempo che indica l'intervallo di tempo specificato per il completamento di un'operazione di invio. Se si usa una porta di ricezione request-response, questo valore specifica un intervallo di tempo per il completamento dell'intera interazione, anche se il client restituisce un messaggio di grandi dimensioni. Valore predefinito: 00:01:00 |
| CloseTimeout | system.TimeSpan | Specificare un valore di intervallo di tempo che indica l'intervallo di tempo specificato per il completamento di un'operazione di chiusura del canale. Valore predefinito: 00:01:00 |
| MaxReceivedMessageSize | Numero intero | Specificare la dimensione massima, in byte, per un messaggio (incluse le intestazioni) che può essere ricevuto su rete. Le dimensioni dei messaggi sono vincolate dalla quantità di memoria allocata per ogni messaggio. È possibile usare questa proprietà per limitare l'esposizione agli attacchi Denial of Service (DoS). L'adattatore WCF-NetTcp sfrutta la classe NetTcpBinding nella modalità di trasferimento memorizzata nel buffer per comunicare con un endpoint. Per la modalità di trasporto memorizzata nel buffer, la proprietà NetTcpBinding.MaxBufferSize è sempre uguale al valore di questa proprietà. Valore predefinito: 65536 |
| EnableTransaction | Booleano | Specificare se un messaggio viene inviato al database MessageBox utilizzando la transazione propagata dai client. Se questa proprietà è impostata su True, i client devono inviare messaggi usando il protocollo di transazione specificato nella proprietà TransactionProtocol . Se i client inviano messaggi all'esterno dell'ambito transazionale, questa posizione di ricezione restituisce un'eccezione ai client e non vengono sospesi messaggi. L'opzione è disponibile solo per le posizioni di ricezione unidirezionale. Se i client inviano messaggi in un contesto transazionale per i percorsi di ricezione richiesta-risposta, viene restituita un'eccezione ai client e messaggi non vengono sospesi. Valore predefinito: False |
| TransactionProtocol | Enumerazione - OleTransaction - WS-AtomicTransaction |
Specificare il protocollo di transazione da usare con questo percorso di ricezione. Valore predefinito: OleTransaction |
| LeaseTimeout | system.TimeSpan | Specificare la durata massima di una connessione in pool attiva. Al termine dell'intervallo di tempo specificato, la connessione viene chiusa dopo l'elaborazione della richiesta corrente. L'adattatore WCF-NetTcp sfrutta la classe NetTcpBinding per comunicare con un endpoint. Quando si usa NetTcpBinding in scenari con carico bilanciato, è consigliabile ridurre il timeout del lease predefinito. Per altre informazioni sul bilanciamento del carico quando si usa NetTcpBinding, vedere anche l'argomento appropriato in Vedere anche. Valore predefinito: 00:05:00 |
| MaxConcurrentCalls | Numero intero | Specificare il numero di chiamate simultanee a una singola istanza del servizio. Le chiamate in eccesso del limite vengono accodate. L'intervallo di questa proprietà è compreso tra 1 e Int32.MaxValue. Valore predefinito: 200 |
| SecurityMode | Enumerazione - Nessuno - Messaggio - Trasporto - TransportWithMessageCredential Per altre informazioni sui nomi dei membri per la proprietà SecurityMode , vedere la proprietà Modalità di sicurezza nella finestra di dialogo Proprietà trasportoWCF-NetTcp, ricezione, scheda Sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori. |
Specificare il tipo di sicurezza utilizzato. Valore predefinito: Trasporto |
| TransportClientCredentialType | Enumerazione - Nessuno - Windows - Certificato Per altre informazioni sui nomi dei membri per la proprietà TransportClientCredentialType , vedere la proprietà Transport client credential type (Tipo di credenziale del client di trasporto ) nella finestra di dialogoWCF-NetTcp Finestra di dialogo Proprietà trasporto, Ricezione, Sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori. |
Specificare il tipo di credenziale da usare quando si esegue l'autenticazione client. Valore predefinito: Windows |
| TransportProtectionLevel | Enumerazione - Nessuno: nessuna protezione. - Firma: i messaggi sono firmati. - EncryptAndSign: i messaggi vengono crittografati e firmati. |
Definire la sicurezza a livello di trasporto TCP. La firma dei messaggi riduce il rischio di manomissione del messaggio da parte di terze parti durante il trasferimento. La crittografia fornisce la privacy a livello di dati durante il trasporto. Valore predefinito: EncryptAndSign |
| MessageClientCredentialType | Enumerazione - Nessuno - Windows - Nome utente - Certificato Per ulteriori informazioni sui nomi dei membri per la proprietà MessageClientCredentialType, vedere la proprietà Message client credential type nella finestra di dialogo delle Proprietà trasportoWCF-NetTcp, Ricezione, nella scheda Sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori. |
Specificare il tipo di credenziale da usare quando si esegue l'autenticazione client usando la sicurezza basata su messaggi. Valore predefinito: Windows |
| AlgorithmSuite | Enumerazione Per ulteriori informazioni sui nomi dei membri per la proprietà AlgorithmSuite, consultare la proprietà suite di algoritmi nella scheda finestra di dialogo Proprietà trasportoWCF-NetTcp, Ricezione, Sicurezza nella guida dell'interfaccia utente e riferimento dello spazio dei nomi API per sviluppatori. |
Specificare la crittografia dei messaggi e gli algoritmi di wrapping della chiave. Questi algoritmi corrispondono a quelli specificati nella specifica del linguaggio Security Policy Language (WS-SecurityPolicy). Valore predefinito: Basic256 |
| ServiceCertificate | Stringa | Specificare l'impronta digitale del certificato X.509 per questa posizione di ricezione che i clienti usano per autenticare il servizio. Il certificato da usare per questa proprietà deve essere installato nell'archivio personale nel percorso Utente corrente .
Nota: È necessario installare il certificato del servizio nel percorso utente corrente dell'account utente per il gestore di ricezione che ospita questo percorso di ricezione. Il valore predefinito è una stringa vuota. |
| Usare Single Sign-On | Booleano | Specificare se usare Enterprise Single Sign-On (SSO) per recuperare le credenziali client per emettere un ticket SSO. Per ulteriori informazioni sulle configurazioni di sicurezza che supportano il SSO, consultare la sezione "Enterprise Single Sign-On Supportability for the WCF-NetTcp Receive Adapter" nella finestra di dialogo WCF-NetTcp Proprietà trasporto, Ricezione, Sicurezza nella guida dell'interfaccia utente e nel riferimento degli spazi dei nomi delle API per sviluppatori. |
| 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 ha più di un elemento figlio, solo il primo elemento diventa la parte del corpo del messaggio BizTalk. - UseEnvelope : creare la parte del corpo del messaggio BizTalk dall'intera SOAP Envelope di un messaggio in arrivo. - UseBodyPath : usare l'espressione del percorso del corpo nella proprietà InboundBodyPathExpression per creare la parte del corpo del messaggio BizTalk. L'espressione del percorso del corpo viene valutata in relazione all'elemento immediatamente figlio dell'elemento SOAP Body di un messaggio in arrivo. Questa proprietà è valida solo per le porte solicit-response. Per altre informazioni su come utilizzare 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 | Stringa Per altre informazioni su come utilizzare la proprietà InboundBodyPathExpression , vedere Proprietà e schema delle proprietà degli adapter WCF. |
Specificare l'espressione di percorso del corpo del messaggio per identificare una parte specifica di un messaggio in arrivo, utilizzato per creare la parte del corpo del messaggio BizTalk. Questa espressione del percorso del corpo viene valutata rispetto all'elemento figlio immediato del nodo Corpo SOAP di un messaggio in arrivo. Se questa espressione di percorso del corpo restituisce più di un nodo, viene scelto solo il primo nodo per la parte del corpo del messaggio BizTalk. Questa proprietà è obbligatoria se la proprietà InboundBodyLocation è impostata su UseBodyPath. Il valore predefinito è una stringa vuota. |
| InboundNodeEncoding | Enumerazione - Base64 - Codifica Base64. - Esadecimale - Codifica esadecimale. - Stringa - Codifica del testo - UTF-8. - XML : gli adapter WCF creano il corpo del messaggio BizTalk con il codice XML esterno del nodo selezionato dall'espressione del percorso del corpo in InboundBodyPathExpression. |
Specificare il tipo di codifica utilizzato dall'adattatore di ricezione WCF-NetTcp per decodificare il nodo identificato dall'espressione del percorso del corpo specificata in InboundBodyPathExpression. Questa proprietà è obbligatoria 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 Corpo SOAP per un messaggio di risposta in uscita. Per altre informazioni su come utilizzare 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. Questa proprietà è valida solo per le sedi di ricezione richiesta-risposta. Valore predefinito: UseBodyElement |
| OutboundXMLTemplate | Stringa Per altre informazioni su come utilizzare la proprietà OutboundXMLTemplate , vedere Specifica del corpo del messaggio per gli adapter WCF. |
Specificare il modello in formato XML per il contenuto dell'elemento SOAP Body di un messaggio di risposta in uscita. Questa proprietà è obbligatoria se la proprietà OutboundBodyLocation è impostata su UseTemplate. Questa proprietà è valida solo per le sedi di ricezione richiesta-risposta. Il valore predefinito è una stringa vuota. |
| SuspendMessageOnFailure | Booleano | Specificare se sospendere il messaggio di richiesta che non riesce l'elaborazione in ingresso a causa di un errore della pipeline di ricezione o di un errore di routing. Valore predefinito: True |
| IncludeExceptionDetailInFaults | Booleano | Specificare se includere informazioni sulle eccezioni gestite nei dettagli degli errori SOAP restituiti al client a scopo di debug. Impostazione predefinita: False |
Configurare un percorso di ricezione WCF-NetTcp con la console di amministrazione BizTalk
È possibile impostare le variabili dell'adapter di posizione di ricezione WCF-NetTcp nella console di amministrazione di BizTalk. Se le proprietà non sono impostate nel percorso di ricezione, vengono usati i valori predefiniti del gestore di ricezione impostati nella console di amministrazione BizTalk.
Annotazioni
Prima di completare la procedura seguente, è necessario aver già aggiunto una porta di ricezione. Per altre informazioni, vedere Come creare una porta di ricezione.
Configurare le variabili per un punto di ricezione WCF-NetTcp
Nella console Amministrazione BizTalk, espandere Amministrazione BizTalk Server 2009, espandere Gruppo BizTalk, espandere Applicazioni e quindi espandere l'applicazione in cui si desidera creare una posizione di ricezione.
Nel riquadro sinistro della console di amministrazione BizTalk fare clic sul nodo Porta di ricezione . Quindi, nel riquadro destro fare clic con il pulsante destro del mouse sulla porta di ricezione associata a un percorso di ricezione esistente o che si desidera associare a un nuovo percorso di ricezione, quindi scegliere Proprietà.
Nel riquadro sinistro della finestra di dialogo Proprietà porta di ricezione selezionare Percorsi di ricezione, quindi nel riquadro destro fare doppio clic su un percorso di ricezione esistente oppure fare clic su Nuovoper creare un nuovo percorso di ricezione.
Nella sezione Trasporto accanto a Tipo della finestra di dialogo Proprietà percorso di ricezione selezionare WCF-NetTcp dall'elenco a discesa e quindi fare clic su Configura.
Nella finestra di dialogo Proprietà trasportoWCF-NetTcp, nella scheda Generale, configurare l'indirizzo dell'endpoint e l'identità del servizio per la destinazione di ricezione WCF-NetTcp. Per ulteriori informazioni sulla scheda Generale nella finestra di dialogo Proprietà di trasportoWCF-NetTcp, consultare la scheda Ricezione, Generale nella finestra di dialogo Proprietà di trasportoWCF-NetTcp, indicata nella riferimenti su guida dell'interfaccia utente e spazio di nomi API per sviluppatori.
Nella finestra di dialogoWCF-NetTcp Proprietà del trasporto, nella scheda Binding, configurare le proprietà di timeout e delle transazioni. Per altre informazioni sulla scheda Binding nella finestra di dialogo Proprietà trasportoWCF-NetTcp , vedere la finestra di dialogoWCF-NetTcp Proprietà trasporto, Ricezione, Associazione nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi dell'API per sviluppatori.
Nella finestra di dialogo Proprietà trasportoWCF-NetTcp, sulla scheda Sicurezza, definisci le funzionalità di sicurezza del percorso di ricezione WCF-NetTcp. Per altre informazioni sulla scheda Sicurezza nella finestra di dialogo Proprietà trasportoWCF-NetTcp , vedere la finestra di dialogo Proprietà trasportoWCF-NetTcp finestra di dialogo Proprietà trasporto, ricezione, sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Nella finestra di dialogo WCF-NetTcp Proprietà trasporto, nella scheda Messaggi, specificare la selezione dei dati per l'elemento Body SOAP. Per altre informazioni sulla scheda Messaggi nella finestra di dialogo Proprietà trasportoWCF-NetTcp , vedere la finestra di dialogo Proprietà trasportoWCF-NetTcp finestra di dialogo Proprietà trasporto, Ricezione, Messaggi nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Configurare un percorso di ricezione WCF-NetTcp a livello di codice
È possibile usare il formato seguente per impostare le proprietà:
<CustomProps>
<InboundBodyPathExpression vt="8" />
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<UseSSO vt="11">0</UseSSO>
<MessageClientCredentialType vt="8">Windows</MessageClientCredentialType>
<SendTimeout vt="8">00:01:00</SendTimeout>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Message</SecurityMode>
<TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>
<ServiceCertificate vt="8" />
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Il frammento di codice seguente illustra la creazione di una posizione di ricezione WCF-NetTcp:
Attenzione
Questo esempio o materiale sussidiario fa riferimento a informazioni riservate, ad esempio una stringa di connessione o un nome utente e una password. Non inserire mai questi valori come valori codificati nel codice e assicurati di proteggere i dati riservati utilizzando l'autenticazione più sicura disponibile. Per altre informazioni, consultare la documentazione seguente:
// Use BizTalk Explorer object model to create new WCF-NetTcp 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>
<InboundBodyLocation vt=""8"">UseBodyElement</InboundBodyLocation>
<UseSSO vt=""11"">0</UseSSO>
<Identity vt=""8"">
<identity>
<userPrincipalName value=""username@contoso.com"" />
</identity>
</Identity>
</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 = "SampleBizTalkApplication";
// 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-NetTcp
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-NetTcp" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.tcp://mycomputer/samplepath";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-NetTcp"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
Vedere anche
Pubblicazione dei metadati del servizio per gli adapter di ricezione WCFGestione di host BizTalk e istanze hostCome modificare gli account del servizio e le passwordInstallazione dei certificati per gli adapter WCFSpecificando il corpo del messaggio per gli adapter WCFBilanciamento del carico degli adapter WCFConfigurazione dell'adapter WCF-NetTcp