Configurare una porta di trasmissione WCF-WSHttp
È possibile configurare una porta di trasmissione WCF-WSHttp a livello di codice o tramite la Console di amministrazione BizTalk.
Proprietà di configurazione
Il modello a oggetti BizTalk Explorer espone un'interfaccia specifica dell'adapter per le porte di invio denominate ITransportInfo con la proprietà Di lettura/scrittura TransportTypeData . Questa proprietà accetta un elenco di proprietà di configurazione delle porte di trasmissione WCF-WSHttp sotto forma di coppia nome-valore di stringhe XML.
La proprietà TransportTypeData dell'interfaccia ITransportInfo non è necessaria. Se non viene impostata, l'adapter utilizza i valori predefiniti per la configurazione delle porte di trasmissione WCF-WSHttp, come indicato nella tabella seguente.
Nella tabella seguente sono illustrate le proprietà di configurazione che è possibile impostare nel modello a oggetti di BizTalk Explorer per le porte di trasmissione WCF-WSHttp.
Nome proprietà | Type | Descrizione |
---|---|---|
Identità | BLOB XML, ad esempio:<identity> <userPrincipalName value="username@contoso.com"> </identity> |
Specifica l'identità del servizio prevista da questa porta di trasmissione. Queste impostazioni consentono alla porta di trasmissione di autenticare il servizio. 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. |
StaticAction | -Stringa | Specificare il campo intestazione HTTP SOAPAction per i messaggi in uscita. Questa proprietà può essere impostata anche tramite la proprietà del contesto del messaggio WCF. Azione in una pipeline o in un'orchestrazione. È possibile specificare questo valore in due modi diversi: il formato di azione singolo e il formato di mapping delle azioni. Se si imposta questa proprietà nel formato di azione singola, ad esempio , http://contoso.com/Svc/Op1 l'intestazione SOAPAction per i messaggi in uscita viene sempre impostata sul valore specificato in questa proprietà.Se si imposta questa proprietà nel formato di mapping delle azioni, l'intestazione SOAPAction in uscita viene determinata da BTS. Proprietà contesto operazione . Ad esempio, se questa proprietà è impostata sul formato XML seguente e su BTS. La proprietà Operation è impostata su Op1, l'adapter di invio WCF usa http://contoso.com/Svc/Op1 per l'intestazione SOAPAction in uscita. <BtsActionMapping> <Operation Name="Op1" Action="http://contoso.com/Svc/Op1>"> <Operation Name="Op2" Action="http://contoso.com/Svc/Op2"/> </BtsActionMapping> Se i messaggi in uscita provengono da una porta di orchestrazione, le istanze di orchestrazione impostano dinamicamente btS. Proprietà Operation con il nome dell'operazione della porta. Se i messaggi in uscita vengono indirizzati con il routing basato sul contenuto, è possibile impostare BTS. Proprietà Operation nei componenti della pipeline. Il valore predefinito è una stringa vuota. |
OpenTimeout | System.TimeSpan | Specificare un valore indicante l'intervallo di tempo consentito per il completamento di un'operazione di apertura di un canale. Valore predefinito: 00:01:00 |
SendTimeout | System.TimeSpan | Specificare un valore indicante l'intervallo di tempo consentito per il completamento di un'operazione di invio. Se si utilizza una porta di trasmissione sollecitazione-risposta, tale valore specificherà l'intervallo di tempo consentito per il completamento dell'intera interazione, anche se il servizio restituisce un messaggio di grandi dimensioni. Valore predefinito: 00:01:00 |
CloseTimeout | System.TimeSpan | Specificare un valore indicante l'intervallo di tempo consentito per il completamento di un'operazione di chiusura di un canale. Valore predefinito: 00:01:00 |
MaxReceivedMessageSize | Intero | Specificare le dimensioni massime in byte di un messaggio, intestazioni comprese, che è possibile ricevere durante la trasmissione. Le dimensioni dei messaggi sono limitate dalla quantità di memoria allocata per ogni messaggio. È possibile utilizzare questa proprietà per limitare l'esposizione ad attacchi di tipo Denial of Service (DoS). Valore predefinito: 65536 |
MessageEncoding | Enumerazione - Testo : usare un codificatore di messaggi di testo. - Mtom : usare un codificatore MTOM (Message Transmission Organization Mechanism 1.0). |
Specificare il codificatore utilizzato per la codifica del messaggio SOAP. Valore predefinito: Testo |
TextEncoding | Enumerazione - unicodeFFF - Codifica BigEndian Unicode. - utf-16 - codifica a 16 bit. - utf-8 - codifica a 8 bit. |
Specificare la codifica del set di caratteri da utilizzare per l'emissione di messaggi nell'associazione quando la proprietà MessageEncoding è impostata su Text. Valore predefinito: utf-8 |
EnableTransaction | Boolean | Specificare se un messaggio viene trasmesso al servizio di destinazione ed eliminato dal database MessageBox in un contesto transazionale usando il protocollo WS-AtomicTransaction . Valore predefinito: False |
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à trasporto WCF-WSHttp, Invia, 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: Nessuno |
TransportClientCredentialType | Enumerazione - Nessuno - Base - Windows - Certificato - Digerire - Ntlm Per altre informazioni sui nomi dei membri per la proprietà TransportClientCredentialType , vedere la proprietà Tipo di credenziali del client Di trasporto nella finestra di dialogo Proprietà trasporto WCF-WSHttp, Send, Security scheda nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi api per sviluppatori. |
Specificare il tipo di credenziali da utilizzare durante l'autenticazione della porta di trasmissione. Valore predefinito: Nessuno |
MessageClientCredentialType | Enumerazione - Nessuno - Windows - Nome utente - Certificato Per altre informazioni sui nomi dei membri per la proprietà MessageClientCredentialType , vedere la proprietà Tipo di credenziale del client message nella finestra di dialogo Proprietà trasporto WCF-WSHttp, Send, Security scheda nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi api per sviluppatori. |
Specificare il tipo di credenziali da utilizzare durante l'autenticazione del client con la sicurezza basata sui messaggi. Valore predefinito: UserName |
AlgorithmSuite | Enumerazione Per altre informazioni sui nomi dei membri per la proprietà AlgorithmSuite , vedere la proprietà Della suite di algoritmi nella finestra di dialogo WCF-WSHttp Transport Properties, Send, Security (Invia, Sicurezza ) nella guida dell'interfaccia utente e nei riferimenti agli spazi dei nomi delle API per sviluppatori. |
Specificare gli algoritmi di crittografia dei messaggi e di incapsulamento della chiave. Questi algoritmi sono associati a quelli indicati nella specifica Security Policy Language (WS-SecurityPolicy). Valore predefinito: Basic256 |
NegotiateServiceCredential | Boolean Per altre informazioni sui nomi dei membri per la proprietà NegotiateServiceCredential , vedere la proprietà Negozia credenziali del servizio nella finestra di dialogo Proprietà trasporto WCF-WSHttp, Invia, Sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori. |
Specificare se la credenziale del servizio viene resa disponibile presso la porta di trasmissione fuori banda o se viene ottenuta dal servizio alla porta di trasmissione attraverso un processo di negoziazione. Tale negoziazione precede lo scambio di messaggi abituale. Valore predefinito: False |
EnableSecurityContext | Boolean | Specificare se viene stabilito un token di contesto di sicurezza tramite uno scambio WS-SecureConversation tra questa porta di invio e il servizio. Se questa proprietà è impostata su True , il servizio di destinazione deve supportare WS-SecureConversation. Valore predefinito: True |
ClientCertificate | string | Specifica l'identificazione personale del certificato X.509 per l'autenticazione della porta di trasmissione per i servizi. Questa proprietà è necessaria se la proprietà ClientCredentialsType è impostata su Certificate. Il certificato da usare per questa proprietà deve essere installato nell'archivio personale nel percorso utente corrente . Il valore predefinito è una stringa vuota. |
ServiceCertificate | string | Specifica l'identificazione personale del certificato X.509 per l'autenticazione del servizio a cui questa porta di trasmissione invia messaggi. Il certificato da usare per questa proprietà deve essere installato nell'archivio Altre Persone nel percorso del computer locale. Il valore predefinito è una stringa vuota. |
AffiliateApplicationName | string | Specifica l'applicazione affiliata da utilizzare per Enterprise Single Sign-On (SSO). Il valore predefinito è una stringa vuota. |
UseSSO | Boolean | Specificare se deve essere utilizzato il servizio Single Sign-On per recuperare le credenziali del client per l'autenticazione con il server di destinazione. Valore predefinito: False |
UserName | string | Specificare il nome utente da usare per l'autenticazione con il server di destinazione quando la proprietà UseSSO è impostata su False. Non è necessario utilizzare il formato dominio\utente per questa proprietà. Il valore predefinito è una stringa vuota. |
Password | string | Specificare la password da usare per l'autenticazione con il server di destinazione quando la proprietà UseSSO è impostata su False. Il valore predefinito è una stringa vuota. |
ProxyToUse | Enumerazione - Nessuno : non usare un server proxy per questa porta di invio. - Impostazione predefinita : usare le impostazioni proxy nel gestore di invio che ospita questa porta di invio. - UserSpecified : usare il server proxy specificato nella proprietà ProxyAddress . |
Specifica il server proxy da utilizzare per il traffico HTTP in uscita. Valore predefinito: Nessuno |
ProxyAddress | string | Specificare l'indirizzo del server proxy. Usare lo schema https o http a seconda della configurazione di sicurezza. Questo indirizzo può essere seguito da due punti e dal numero di porta, ad esempio http://127.0.0.1:8080 . Il valore predefinito è una stringa vuota. |
ProxyUserName | string | Specifica il nome utente da utilizzare per il proxy. L'adattatore WCF-WSHttp sfrutta WSHttpBinding nella modalità di trasferimento con buffer per comunicare con un endpoint. Le credenziali proxy di WSHttpBinding sono applicabili solo quando la modalità di sicurezza è Transport o Nessuno. Se si imposta la proprietà SecurityMode su Message o TransportWithMessageCredential, l'adapter WCF-WSHttp non usa le credenziali specificate nelle proprietà ProxyUserName e ProxyPassword per l'autenticazione sul proxy. Nota: L'adattatore di invio di WCF-WSHttp usa l'autenticazione di base per il proxy. Il valore predefinito è una stringa vuota. |
ProxyPassword | string | Specifica la password da utilizzare per il proxy. Il valore predefinito è una stringa vuota. |
OutboundBodyLocation | Enumerazione - UseBodyElement : usare la parte del corpo del messaggio BizTalk per creare il contenuto dell'elemento SOAP Body per un messaggio in uscita. - UseTemplate : usare il modello fornito nella proprietà OutboundXMLTemplate per creare il contenuto dell'elemento SOAP Body per un messaggio 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. 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 in uscita. Questa proprietà è necessaria se la proprietà OutboundBodyLocation è impostata su UseTemplate. Il valore predefinito è una stringa vuota. |
InboundBodyLocation | Enumerazione - UseBodyElement : usare il contenuto dell'elemento SOAP Body di un messaggio in ingresso 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. Questa proprietà è valida solo per le porte sollecitazione-risposta. - 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. Questa proprietà è valida solo per le porte sollecitazione-risposta. 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 invio WCF-WSHttp per decodificare il nodo identificato dal percorso del corpo specificato in InboundBodyPathExpression. Questa proprietà è necessaria se la proprietà InboundBodyLocation è impostata su UseBodyPath. Questa proprietà è valida solo per le porte sollecitazione-risposta. Valore predefinito: XML |
PropagateFaultMessage | Boolean - True : instradare il messaggio che ha esito negativo nell'elaborazione in uscita a un'applicazione di sottoscrizione, ad esempio un'altra pianificazione di ricezione o orchestrazione. - False : sospendere i messaggi non riusciti e generare un riconoscimento negativo (NACK). |
Specifica se eseguire il routing o sospendere i messaggi per i quali non è stato possibile eseguire l'elaborazione in uscita. Questa proprietà è valida solo per le porte sollecitazione-risposta. Valore predefinito: True |
Configurare una porta di trasmissione WCF-WSHttp con la console di amministrazione BizTalk
È possibile impostare le variabili dell'adapter della porta di trasmissione WCF-WSHttp nella Console di amministrazione BizTalk. Se non vengono impostate proprietà per la porta di trasmissione, vengono utilizzati i valori predefiniti per la configurazione della porta di trasmissione WCF-WSHttp, come indicato nella tabella precedente.
Configurare le variabili per una porta di trasmissione WCF-WSHttp
Nella Console di amministrazione BizTalk creare una nuova porta di trasmissione oppure fare doppio clic su una porta di trasmissione esistente per modificarla. Per altre informazioni, vedere Come creare una porta di invio. Configurare tutte le opzioni di porta di invio e specificare WCF-WSHttp per l'opzione Tipo nella sezione Trasporto della scheda Generale .
Nella scheda Generale , nella sezione Trasporto fare clic sul pulsante Configura accanto a Tipo.
Nella scheda Generale della finestra di dialogo WCF-WSHttp Transport Properties configurare l'indirizzo dell'endpoint, l'identità del servizio e l'intestazione HTTP SOAPAction per la porta di trasmissione WCF-WSHttp. Per altre informazioni sulla scheda Generale nella finestra di dialogo Proprietà trasporto WCF-WSHttp , vedere la finestra di dialogo Proprietà trasporto WCF-WSHttp, Invia, Generale nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi api per sviluppatori.
Nella finestra di dialogo WCF-WSHttp Transport Properties (Proprietà trasporto WCF-WSHttp ), nella scheda Binding configurare le proprietà di timeout, codifica e transazione. Per altre informazioni sulla scheda Binding nella finestra di dialogo WCF-WSHttp Transport Properties (Proprietà trasporto WCF-WSHttp ), vedere la finestra di dialogo Proprietà trasporto WCF-WSHttp, Send, Binding (Invia, binding ) nella guida dell'interfaccia utente e nei riferimenti agli spazi dei nomi api per sviluppatori.
Nella scheda Sicurezza della finestra di dialogo WCF-WSHttp Transport Properties (Proprietà trasporto WCF-WSHttp) definire le funzionalità di sicurezza della porta di trasmissione WCF-WSHttp. Per altre informazioni sulla scheda Sicurezza nella finestra di dialogo Proprietà trasporto WCF-WSHttp , vedere la finestra di dialogo Proprietà trasporto WCF-WSHttp, Invia, Sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi api per sviluppatori.
Nella scheda Proxy della finestra di dialogo WCF-WSHttp Transport Properties (Proprietà trasporto WCF-WSHttp) configurare l'impostazione proxy per la porta di trasmissione WCF-WSHttp. Per altre informazioni sulla scheda Proxy nella finestra di dialogo PROPRIETÀ trasporto WCF-WSHttp , vedere la finestra di dialogo Proprietà trasporto WCF-WSHttp, Invia, Proxy nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi api per sviluppatori.
Nella finestra di dialogo WCF-WSHttp Transport Properties (Proprietà trasporto WCF-WSHttp) specificare la selezione dei dati per l'elemento SOAP Body. Per altre informazioni sulla scheda Messaggi nella finestra di dialogo Proprietà trasporto WCF-WSHttp , vedere la finestra di dialogo Proprietà trasporto WCF-WSHttp, Invia, Messaggi nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi api per sviluppatori.
Configurare una porta di trasmissione WCF-WSHttp a livello di codice
Per impostare le proprietà, è possibile utilizzare il seguente formato:
<CustomProps>
<ServiceCertificate vt="8" />
<UseSSO vt="11">0</UseSSO>
<InboundBodyPathExpression vt="8" />
<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>
<Identity vt="8" />
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Message</SecurityMode>
<TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
<TextEncoding vt="8">utf-8</TextEncoding>
<NegotiateServiceCredential vt="11">-1</NegotiateServiceCredential>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<ClientCertificate vt="8" />
<ProxyUserName vt="8" />
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<ProxyToUse vt="8">Default</ProxyToUse>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<EstablishSecurityContext vt="11">-1</EstablishSecurityContext>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
<ProxyAddress vt="8" />
<MessageEncoding vt="8">Text</MessageEncoding>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Nel frammento di codice riportato di seguito viene illustrata la creazione di una porta di trasmissione WCF-WSHttp:
// Use BizTalk Explorer object model to create new WCF-WSHttp send port.
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<StaticAction vt=""8"">http://www.northwindtraders.com/Service/Operation</StaticAction>
<MessageEncoding vt=""8"">Text</MessageEncoding>
<TextEncoding vt=""8"">utf-8</TextEncoding>
<OpenTimeout vt=""8"">00:01:00</OpenTimeout>
</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 static one-way send port
SendPort sendPort = application.AddNewSendPort(false, false);
sendPort.Name = "SampleSendPort";
sendPort.PrimaryTransport.TransportType = explorer.ProtocolTypes["WCF-WSHttp"];
sendPort.PrimaryTransport.Address = "http://mycomputer/samplepath";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
Vedere anche
Schema e proprietà delle schede WCF Configurando l'adattatore WCF-WSHttpSpecificando il corpo del messaggio per gli adapter WCF che installano certificati per le schedeWCF configurando porte di trasmissione dinamiche tramite le proprietà del contesto degli adattatori WCF