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-NetMsmq 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-NetMsmq 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-NetMsmq usa i valori predefiniti per la configurazione della posizione di ricezione 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 il percorso di ricezione WCF-NetMsmq.
| 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. 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). Valore predefinito: 65536 |
| EnableTransaction | Booleano | Specificare il tipo di coda di messaggi: transazionale o non transazionale. Se questa proprietà è selezionata, ogni messaggio 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 client devono essere impostati su True. Se questa proprietà viene cancellata, i messaggi vengono trasferiti senza garanzia di recapito.
Nota: Se si usa una coda transazionale in questa posizione di ricezione, questa proprietà deve essere selezionata. Valore predefinito: False |
| Elaborazione Ordinata | Booleano | Specificare se elaborare i messaggi in modo seriale. Quando questa proprietà è selezionata, questo percorso di ricezione supporta il recapito ordinato dei messaggi quando viene usato insieme a una porta di trasmissione di messaggistica o orchestrazione BizTalk con l'opzione Recapito ordinato impostata su True. È possibile selezionare questa opzione solo quando la proprietà EnableTransaction è impostata su True.Per altre informazioni sull'opzione Recapito ordinato , vedere anche gli argomenti appropriati in Vedere anche. Quando questa proprietà è impostata su True, il percorso di ricezione WCF-NetMsmq ottimizza l'utilizzo delle risorse quando si gestiscono messaggi di grandi dimensioni rendendo l'adattatore a thread singolo. Valore predefinito: False |
| 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 0 e Int32.MaxValue. Valore predefinito: 200 |
| 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 dialogo Proprietà trasportoWCF-NetMsmq, 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 |
| MsmqAuthenticationMode | Enumerazione - Nessuno - WindowsDomain - Certificato Per ulteriori informazioni sui nomi dei membri della proprietà MsmqAuthenticationMode, vedere la proprietà Modalità di Autenticazione MSMQ nella finestra di dialogo delle proprietà del trasportoWCF-NetMsmq, Ricezione, scheda Sicurezza nella guida dell'interfaccia utente e informazioni di riferimento sullo spazio dei nomi dell'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. La crittografia garantisce l'integrità dei messaggi, mentre la firma e la crittografia garantisce sia l'integrità dei messaggi che il non ripudio. 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 ulteriori informazioni sui nomi dei membri per la proprietà MessageClientCredentialType, vedere la proprietà Message client credential type nella finestra di dialogo delle Proprietà trasportoWCF-NetMsmq, 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-NetMsmq, 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. |
| 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-NetMsmq 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 |
| DisableLocationOnFailure | Booleano | Specificare se disabilitare il percorso di ricezione che non riesce a elaborare i dati in ingresso a causa di un errore della pipeline di ricezione o di routing. Impostazione predefinita: False |
| 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-NetMsmq con la console di amministrazione BizTalk
È possibile impostare le variabili dell'adapter di posizione di ricezione WCF-NetMsmq 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.
Annotazioni
Le configurazioni di associazione dei client WCF e dei percorsi di ricezione WCF-NetMsmq devono corrispondere. Se non corrispondono, le posizioni di ricezione WCF-NetMsmq possono perdere i messaggi in arrivo.
Configurare le variabili per un punto di ricezione WCF-NetMsmq
Nella console di amministrazione di BizTalk, espandere AmministrazioneBizTalk Server, espandere il Gruppo BizTalk, espandere Applicazioni e quindi espandere l'applicazione in cui si desidera creare un punto 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 ricezione selezionare WCF-NetMsmq dall'elenco a discesa e quindi fare clic su Configura.
Nella finestra di dialogo Proprietà trasportoWCF-NetMsmq, nella scheda Generale, configurare l'indirizzo dell'endpoint e l'identità del servizio per la destinazione di ricezione WCF-NetMsmq. Per ulteriori informazioni sulla scheda Generale nella finestra di dialogo Proprietà di trasportoWCF-NetMsmq, consultare la scheda Ricezione, Generale nella finestra di dialogo Proprietà di trasportoWCF-NetMsmq, indicata nella riferimenti su guida dell'interfaccia utente e spazio di nomi API per sviluppatori.
Nella finestra di dialogoWCF-NetMsmq 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-NetMsmq , vedere la finestra di dialogoWCF-NetMsmq 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-NetMsmq, sulla scheda Sicurezza, definisci le funzionalità di sicurezza del percorso di ricezione WCF-NetMsmq. Per altre informazioni sulla scheda Sicurezza nella finestra di dialogo Proprietà trasportoWCF-NetMsmq , vedere la finestra di dialogo Proprietà trasportoWCF-NetMsmq 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-NetMsmq 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-NetMsmq , vedere la finestra di dialogo Proprietà trasportoWCF-NetMsmq 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-NetMsmq a livello di codice
È possibile usare il formato seguente per impostare le proprietà:
<CustomProps>
<ServiceCertificate vt="8" />
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<InboundBodyPathExpression vt="8" />
<MessageClientCredentialType vt="8">Windows</MessageClientCredentialType>
<SendTimeout vt="8">00:01:00</SendTimeout>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>
<SecurityMode vt="8">Transport</SecurityMode>
<OrderedProcessing vt="11">0</OrderedProcessing>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<MsmqEncryptionAlgorithm vt="8">RC4Stream</MsmqEncryptionAlgorithm>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<MsmqProtectionLevel vt="8">Sign</MsmqProtectionLevel>
<DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
<MsmqSecureHashAlgorithm vt="8">Sha1</MsmqSecureHashAlgorithm>
<SuspendMessageOnFailure vt="11">-1</SuspendMessageOnFailure>
<EnableTransaction vt="11">-1</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<MsmqAuthenticationMode vt="8">WindowsDomain</MsmqAuthenticationMode>
</CustomProps>
Il frammento di codice seguente illustra la creazione di una posizione di ricezione 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 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-NetMsmq
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-NetMsmq" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.msmq://mycomputer/private/sampleQueue";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-NetMsmq"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
Vedere anche
Pubblicazione dei metadati del servizio per gli adapter di ricezione WCFGestione degli host BizTalk e delle istanze hostCome modificare gli account del servizio e le passwordInstallazione dei certificati per gli adapter WCFSpecificare il corpo del messaggio per gli adapter WCFConfigurazione dell'adapter WCF-NetMsmqRecapito ordinato dei messaggiInvio e recupero dei messaggi all'interno di una transazioneAccodamento messaggi e Active DirectoryCode pubbliche e private