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 una porta di trasmissione WCF-NetMsmq a livello di codice o tramite la console di amministrazione bizTalk.
Proprietà di configurazione
Il modello a oggetti di BizTalk Explorer espone un'interfaccia specifica dell'adapter per le porte di trasmissione denominate ITransportInfo con la proprietà di lettura/scrittura TransportTypeData . Questa proprietà accetta un contenitore delle proprietà di configurazione della porta di trasmissione WCF-NetMsmq sotto forma di coppia nome-valore di stringhe XML.
La proprietà TransportTypeData dell'interfaccia ITransportInfo non è obbligatoria. Se non è impostata, l'adapter usa i valori predefiniti per la configurazione della porta di trasmissione WCF-NetMsmq, 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 WCF-NetMsmq porte di trasmissione.
| Nome della proprietà | TIPO | Descrizione |
|---|---|---|
| Identità | XML Blob Esempio: <identità> <userPrincipalName value="username@contoso.com" /> </identità> |
Specificare l'identità del servizio prevista da questa porta di trasmissione. Queste impostazioni consentono a questa porta di trasmissione di autenticare il servizio. 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. |
| StaticAction | Stringa | Specificare l'intestazione del campo SOAPAction per i messaggi in uscita. Questa proprietà può essere impostata anche tramite la proprietà del contesto del messaggio WCF.Action in una pipeline o in un'orchestrazione. È possibile specificare questo valore in due modi diversi: il formato della singola azione e il formato di mapping delle azioni. Se si imposta questa proprietà nel formato a singola azione, ad esempio , http://contoso.com/Svc/Op1l'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 dalla proprietà del contesto BTS.Operation. Ad esempio, se questa proprietà è impostata sul seguente formato XML e la proprietà BTS.Operation è impostata su Op1, l'adattatore di trasmissione WCF usa 'http://contoso.com/Svc/Op1' per l'intestazione SOAPAction in uscita. <BtsActionMapping> <NomeOperazione="Op1" Azione="http://contoso.com/Svc/Op1" /> <Nome operazione="Op2" Azione="http://contoso.com/Svc/Op2" /> </BtsActionMapping> Se i messaggi in uscita provengono da una porta di orchestrazione, le istanze di orchestrazione impostano dinamicamente la proprietà BTS.Operation con il nome dell'operazione della porta. Se i messaggi in uscita vengono instradati con il routing basato sul contenuto, è possibile impostare la proprietà BTS.Operation nei componenti della pipeline. 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 trasmissione solicit-response, questo valore specifica un intervallo di tempo 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 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 |
| EnableTransactional | Booleano | Specificare il tipo della coda di messaggi per il servizio di destinazione: transazionale o non transazionale. Se questa proprietà è impostata su True, ogni messaggio elaborato da questa porta di trasmissione viene recapitato una sola volta e il mittente riceve una notifica degli errori di recapito. Per inviare messaggi tramite porte di trasmissione transazionali, gli elementi di associazione durable e exactlyOnce del servizio devono essere impostati su True. Se questa proprietà è impostata su False, i messaggi vengono trasferiti senza garanzia di recapito. Valore predefinito: True |
| DeadLetterQueue | Enumerazione - Nessuno : non deve essere usata alcuna coda di messaggi non recapitabili. - Sistema : usare la coda di messaggi non recapitabili a livello di sistema. - Personalizzato : usare una coda di messaggi non recapitabili personalizzata. |
Specifica la coda di messaggi non recapitabili nella quale verranno trasferiti i messaggi che non sono riusciti ad essere recapitati all'applicazione. Per altre informazioni sui messaggi recapitati alla coda dei messaggi non recapitabili, vedere la finestra di dialogo proprietà trasportoWCF-NetMsmq, la scheda Invia, Binding nella guida all'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori. Nota: La coda di messaggi non recapitabili personalizzata è supportata solo in Accodamento messaggi (MSMQ) 4.0, rilasciato con Windows Vista. Valore predefinito: System |
| CustomDeadLetterQueue | Stringa | Specificare l'URI completo con lo schema net.msmq per la posizione della coda di messaggi non recapitabili per applicazione, in cui vengono inseriti i messaggi scaduti o che non sono stati trasferiti o recapitati. Ad esempio, net.msmq://localhost/deadLetterQueueName. La coda dei messaggi non recapitabili è situata nel gestore delle code dell'applicazione di invio ed è utilizzata per i messaggi scaduti che non sono stati consegnati. Questa proprietà è obbligatoria se la proprietà DeadLetterQueue è impostata su Custom. Il valore predefinito è una stringa vuota. |
| TimeToLive | system.TimeSpan | Specificare un intervallo di tempo per quanto tempo i messaggi sono validi prima della scadenza e inserirli nella coda dei messaggi non recapitabili. Questa proprietà è impostata per assicurarsi che i messaggi sensibili al tempo non diventino obsoleti prima che vengano elaborati da questa porta di trasmissione. Un messaggio in una coda che non viene consumato da questa porta di trasmissione entro l'intervallo di tempo specificato è considerato scaduto. I messaggi scaduti vengono inviati a una coda speciale denominata coda di messaggi non recapitabili. La posizione della coda di messaggi non recapitabili è impostata tramite la proprietà DeadLetterQueue. Valore predefinito: 1.00:00:00 |
| UseSourceJournal | Booleano | Specificare se le copie dei messaggi elaborati da questa porta di trasmissione devono essere archiviate nella coda del journal di origine. Valore predefinito: False |
| SecurityMode | Enumerazione - Nessuno - Messaggio - Trasporto - Entrambi Per altre informazioni sui nomi dei membri per la proprietà SecurityMode , vedere la proprietà Modalità di sicurezza nella finestra di dialogoWCF-NetMsmq Finestra di dialogo Proprietà trasporto, 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: Trasporto |
| MsmqAuthenticationMode | Enumerazione - Nessuno - WindowsDomain - Certificato Per ulteriori informazioni sui nomi dei membri della proprietà MsmqAuthenticationMode, vedere la proprietà Modalità di autenticazione MSMQ nella scheda Sicurezza, Invia, Proprietà di trasportoWCF-NetMsmq nella guida dell'interfaccia utente e riferimento dello spazio dei nomi API per sviluppatori. |
Specificare la modalità di autenticazione del messaggio tramite il trasporto MSMQ. Valore predefinito: WindowsDomain |
| MsmqProtectionLevel | Enumerazione - Nessuno: nessuna protezione. - Firma: i messaggi sono firmati. - EncryptAndSign: i messaggi vengono crittografati e firmati. Per usare questo livello di protezione, è necessario abilitare l'integrazione di Active Directory per MSMQ. |
Specificare il modo in cui i messaggi vengono protetti al livello del trasporto MSMQ. Valore predefinito: Firma |
| MsmqSecureHashAlgorithm | Enumerazione - MD5 - SHA1 - SHA25 - SHA512 |
Specificare l'algoritmo hash da usare per calcolare il digest del messaggio. Questa proprietà non è disponibile se la proprietà MsmqProtectionLevel è impostata su Nessuno. Valore predefinito: SHA1 |
| MsmqEncryptionAlgorithm | Enumerazione - RC4Stream - AES |
Specificare l'algoritmo da usare per la crittografia dei messaggi su rete durante il trasferimento di messaggi tra i gestori di code di messaggi. Questa proprietà è disponibile solo se la proprietà MsmqProtectionLevel è impostata su EncryptAndSign. Valore predefinito: RC4Stream |
| MessageClientCredentialType | Enumerazione - Nessuno - Windows - Nome utente - Certificato Per altre informazioni sui nomi dei membri per la proprietà MessageClientCredentialType , vedere la proprietà Message client credential type (Tipo di credenziale del client message ) nella finestra di dialogoWCF-NetMsmq Finestra di dialogo Proprietà trasporto, Invio, Sicurezza nella guida dell'interfaccia utente e nelle 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, vedere la proprietà suite di algoritmi nella finestra di dialogo Proprietà trasportoWCF-NetMsmq, invia, sicurezza nella guida dell'interfaccia utente e riferimento allo spazio dei nomi delle 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 |
| ClientCertificate | Stringa | Specificare l'impronta digitale del certificato X.509 per l'autenticazione di questa porta di invio ai servizi. Questa proprietà è obbligatoria 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 | Stringa | Specificare l'impronta digitale 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 | Stringa | Specificare l'applicazione affiliata da usare per Enterprise Single Sign-On (SSO). Il valore predefinito è una stringa vuota. |
| Usare Single Sign-On | Booleano | Specificare se usare Single Sign-On per recuperare le credenziali client per l'autenticazione con il server di destinazione. Valore predefinito: False |
| Nome utente | Stringa | Specificare il nome utente da utilizzare per l'autenticazione con il server di destinazione quando la proprietà UseSSO è impostata su False. Non è necessario usare il formato dominio\utente per questa proprietà. Il valore predefinito è una stringa vuota. |
| Parola d’ordine | Stringa | 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. |
| 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 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. 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 in uscita. Questa proprietà è obbligatoria se la proprietà OutboundBodyLocation è impostata su UseTemplate. Il valore predefinito è una stringa vuota. |
Configurare una porta di trasmissione WCF-NetMsmq con la console di amministrazione BizTalk
È possibile impostare WCF-NetMsmq variabili dell'adapter di porta di trasmissione nella console di amministrazione di BizTalk. Se le proprietà non sono impostate per la porta di trasmissione, vengono usati i valori predefiniti per la configurazione della porta di trasmissione WCF-NetMsmq, come indicato nella tabella precedente.
Configurare le variabili per una porta di trasmissione WCF-NetMsmq
Nella console di amministrazione bizTalk creare una nuova porta di trasmissione o fare doppio clic su una porta di trasmissione esistente per modificarla. Per altre informazioni, vedere Come creare una porta di trasmissione. Configurare tutte le opzioni della porta di trasmissione e specificare WCF-NetMsmq per l'opzione Tipo nella sezione Trasporto della scheda Generale nella guida all'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Nella sezione Trasporto della scheda Generale fare clic sul pulsante Configura accanto a Tipo.
Nella finestra di dialogo Proprietà trasportoWCF-NetMsmq, nella scheda Generale, configura l'indirizzo dell'endpoint, l'identità del servizio e l'intestazione SOAPAction per la porta di invio WCF-NetMsmq. Per altre informazioni sulla scheda Generale nella finestra di dialogo WCF-NetMsmq Proprietà di trasporto, vedere la scheda WCF-NetMsmq Proprietà di trasporto, Invia, Generale nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Nella finestra di dialogo Proprietà trasportoWCF-NetMsmq, nella scheda Binding, configurare le proprietà di timeout e di transazione e le impostazioni della coda. Per altre informazioni sulla scheda Binding nella finestra di dialogo Proprietà trasportoWCF-NetMsmq, vedere la scheda Proprietà trasportoWCF-NetMsmq, Invia, Binding nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Nella finestra di dialogo Proprietà trasportoWCF-NetMsmq definire le funzionalità di sicurezza della porta di trasmissione WCF-NetMsmq nella scheda Sicurezza . Per altre informazioni sulla scheda Sicurezza nella finestra di dialogo Proprietà trasportoWCF-NetMsmq , vedere la finestra di dialogo Proprietà trasportoWCF-NetMsmq, La scheda Invia, Sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi delle API per sviluppatori.
Nella finestra di dialogo WCF-NetMsmq Proprietà trasporto, nella scheda Messaggi, specificare la selezione dei dati per l'elemento Body SOAP. Per ulteriori informazioni sulla scheda Messaggi nella finestra di dialogo Proprietà trasportoWCF-NetMsmq, consultare la scheda Proprietà trasportoWCF-NetMsmq, Invio, Messaggi nella guida dell'interfaccia utente e nella documentazione di riferimento sullo spazio dei nomi dell'API per sviluppatori.
Configurare una porta di trasmissione WCF-NetMsmq a livello di codice
È possibile usare il formato seguente per impostare le proprietà:
<CustomProps>
<ServiceCertificate vt="8" />
<UseSSO vt="11">0</UseSSO>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<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>
<MsmqProtectionLevel vt="8">Sign</MsmqProtectionLevel>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<UseSourceJournal vt="11">0</UseSourceJournal>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Transport</SecurityMode>
<CustomDeadLetterQueue vt="8" />
<ClientCertificate vt="8" />
<MsmqEncryptionAlgorithm vt="8">RC4Stream</MsmqEncryptionAlgorithm>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<MsmqSecureHashAlgorithm vt="8">Sha1</MsmqSecureHashAlgorithm>
<EnableTransaction vt="11">-1</EnableTransaction>
<TimeToLive vt="8">1.00:00:00</TimeToLive>
<MsmqAuthenticationMode vt="8">WindowsDomain</MsmqAuthenticationMode>
<DeadLetterQueue vt="8">System</DeadLetterQueue>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Il frammento di codice seguente illustra la creazione di una porta di trasmissione WCF-NetMsmq:
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-NetMsmq 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>
<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-NetMsmq"];
sendPort.PrimaryTransport.Address = "net.msmq://mycomputer/private/samplequeue";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
Vedere anche
Proprietà e schema delle proprietà degli adapter WCF
Installazione di certificati per gli adapter WCF
Specifica del corpo del messaggio per gli adapter WCF
Configurazione dell'adapter WCF-NetMsmq
Configurazione delle porte di trasmissione dinamiche tramite le proprietà del contesto degli adapter WCF