Partager via


Configuration d'un port d'envoi WCF-NetMsmq

Vous pouvez configurer un port d'envoi WCF-NetMsmq par programme ou à l'aide de la console Administration de BizTalk.

Propriétés de configuration

Le modèle objet Explorer BizTalk expose une interface spécifique à l’adaptateur pour les ports d’envoi nommée ITransportInfo qui a la propriété de lecture/écriture TransportTypeData. Celle-ci accepte le jeu de propriétés de configuration du port d'envoi WCF-NetMsmq sous la forme d'une paire nom-valeur de chaînes XML.

La propriété TransportTypeData de l’interface ITransportInfo n’est pas requise. Si elle n'est pas définie, l'adaptateur utilise les valeurs par défaut pour la configuration du port d'envoi WCF-NetMsmq, comme indiqué dans le tableau suivant.

Le tableau suivant répertorie les propriétés de configuration que vous pouvez définir dans le modèle objet de l'Explorateur BizTalk pour les ports d'envoi WCF-NetMsmq.

Nom de la propriété Type Description
Identité Blob XML

Exemple :

<identity>

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

</Identité>
Spécifiez l'identité du service attendu par ce port d'envoi. Ces paramètres permettent au port d'envoi d'authentifier le service. Lors du processus d'établissement de liaison entre le client et le service, l'infrastructure WCF (Windows Communication Foundation) garantit que l'identité du service attendu correspond aux valeurs de cet élément.

La valeur par défaut est une chaîne vide.
StaticAction String Spécifiez le champ d’en-tête SOAPAction pour les messages sortants. Cette propriété peut également être définie via la propriété de contexte de message WCF. Action dans un pipeline ou une orchestration. Vous pouvez spécifier cette valeur de deux manières différentes : le format d’action unique et le format de mappage d’action. Si vous définissez cette propriété au format d’action unique, par exemple , http://contoso.com/Svc/Op1l’en-tête SOAPAction pour les messages sortants est toujours défini sur la valeur spécifiée dans cette propriété.

Si vous définissez cette propriété dans le format de mappage d’action, l’en-tête SOAPAction sortant est déterminé par le BTS. Propriété de contexte d’opération . Par exemple, si cette propriété est définie sur le format XML suivant et le BTS. La propriété Operation est définie sur Op1, l’adaptateur d’envoi WCF utilise «http://contoso.com/Svc/Op1 » pour l’en-tête SOAPAction sortant.

<BtsActionMapping>

<Nom de l’opération="Op1 » Action= »http://contoso.com/Svc/Op1" ; />

<Nom de l’opération="Op2 » Action= »http://contoso.com/Svc/Op2" ; />

</BtsActionMapping>

Si les messages sortants proviennent d’un port d’orchestration, les instances d’orchestration définissent dynamiquement le BTS. Propriété Operation avec le nom de l’opération du port. Si les messages sortants sont routés avec un routage basé sur le contenu, vous pouvez définir le BTS. Propriété Operation dans les composants de pipeline.

La valeur par défaut est une chaîne vide.
OpenTimeout System.TimeSpan Spécifier une valeur de période qui indique l'intervalle de temps donné pour qu'une opération d'ouverture de canal soit réalisée.

Valeur par défaut : 00:01:00
SendTimeout System.TimeSpan Spécifier une valeur de période qui indique l'intervalle de temps donné pour qu'une opération d'envoi soit réalisée. En cas d’utilisation d’un port d’envoi sollicitation-réponse, cette valeur indique une période pour la réalisation de l’intégralité de l’interaction, même si le service renvoie un message volumineux.

Valeur par défaut : 00:01:00
CloseTimeout System.TimeSpan Spécifier une valeur de période qui indique l'intervalle de temps donné pour qu'une opération de fermeture de canal soit réalisée.

Valeur par défaut : 00:01:00
EnableTransactional Boolean Spécifiez le type de la file d’attente de messages pour le service de destination : transactionnel ou non transactionnel. Si cette propriété a la valeur True, chaque message traité par ce port d’envoi n’est remis qu’une seule fois, et l’expéditeur est averti des échecs de remise. Pour envoyer des messages via des ports d’envoi transactionnels, les éléments de liaison durable et exactlyOnce du service doivent avoir la valeur True. Si cette propriété a la valeur False, les messages sont transférés sans assurance de remise.

Valeur par défaut : True
DeadLetterQueue Énumération

- Aucun : aucune file d’attente de lettres mortes n’est à utiliser.
- Système : utilisez la file d’attente de lettres mortes à l’échelle du système.
- Personnalisé : utilisez une file d’attente de lettres mortes personnalisée.
Spécifiez la file d'attente des messages non distribués vers laquelle seront transférés les messages qui n'ont pas pu être remis à l'application. Pour plus d’informations sur les messages remis à la file d’attente de lettres mortes, consultez la boîte de dialogue Propriétés de transport WCF-NetMsmq, Onglet Envoyer, Liaison dans les conseils d’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.

Remarque : La file d’attente de lettres mortes personnalisée est prise en charge uniquement dans Message Queuing (MSMQ) 4.0, publié avec Windows Vista.

Valeur par défaut : Système
CustomDeadLetterQueue String Spécifiez l’URI complet avec le schéma net.msmq pour l’emplacement de la file d’attente de lettres mortes par application, où sont placés les messages ayant expiré ou ayant échoué le transfert ou la remise. Par exemple, net.msmq://localhost/deadLetterQueueName. La file d'attente de lettres mortes par application est une file d'attente sur le gestionnaire de files d'attente de l'application émettrice pour les messages ayant expiré dont la remise a échoué. Cette propriété est obligatoire si la propriété DeadLetterQueue a la valeur Custom.

La valeur par défaut est une chaîne vide.
TimeToLive System.TimeSpan Spécifiez une durée de validité des messages avant qu'ils ne soient considérés comme expirés et placés dans la file d'attente des messages non distribués. Cette propriété permet de s'assurer que les messages, pour lesquels le temps est un paramètre crucial, ne deviennent pas obsolètes avant leur traitement par le port d'envoi. Tout message d'une file d'attente qui n'aurait pas été utilisé par ce port d'envoi dans le délai spécifié est déclaré comme ayant expiré. Ces messages expirés sont envoyés vers une file d'attente spéciale, appelée file d'attente des messages non distribués. L’emplacement de la file d’attente de lettres mortes est défini avec la propriété DeadLetterQueue .

Valeur par défaut : 1.00 :00 :00
UseSourceJournal Boolean Spécifiez si les copies des messages traités par ce port d'envoi doivent être stockées dans la file d'attente des journaux sources.

Valeur par défaut : False
Securitymode Énumération

- Aucun
- Message
- Transport
- Les deux

Pour plus d’informations sur les noms des membres de la propriété SecurityMode , consultez la propriété Mode de sécurité dans la boîte de dialogue Propriétés de transport WCF-NetMsmq, Envoyer, onglet Sécurité dans l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.
Spécifier le type de sécurité utilisé.

Valeur par défaut : Transport
MsmqAuthenticationMode Énumération

- Aucun
- WindowsDomain
- Certificat

Pour plus d’informations sur les noms des membres de la propriété MsmqAuthenticationMode , consultez la propriété mode d’authentification MSMQ dans la boîte de dialogue Propriétés de transport WCF-NetMsmq, onglet Envoyer, Sécurité dans l’aide de l’interface utilisateur et référence de l’espace de noms d’API des développeurs.
Spécifiez le mode d'authentification du message par le transport MSMQ.

Valeur par défaut : WindowsDomain
MsmqProtectionLevel Énumération

- Aucun : aucune protection.
- Signer : les messages sont signés.
- EncryptAndSign : les messages sont chiffrés et signés. Pour utiliser ce niveau de protection, vous devez activer l’intégration Active Directory pour MSMQ.
Spécifier le mode de sécurisation des messages au niveau du transport MSMQ.

Valeur par défaut : Sign
MsmqSecureHashAlgorithm Énumération

- MD5
- SHA1
- SHA25
- SHA512
Spécifiez l'algorithme de hachage à utiliser pour traiter la synthèse du message. Cette propriété n’est pas disponible si la propriété MsmqProtectionLevel a la valeur None.

Valeur par défaut : SHA1
MsmqEncryptionAlgorithm Énumération

- RC4Stream
- AES
Spécifiez l'algorithme à utiliser pour le chiffrement des messages lors de leur transfert entre les gestionnaires de files d'attente. Cette propriété est disponible uniquement si la propriété MsmqProtectionLevel est définie sur EncryptAndSign.

Valeur par défaut : RC4Stream
MessageClientCredentialType Énumération

- Aucun
- Windows
- Nom d'utilisateur
- Certificat

Pour plus d’informations sur les noms des membres de la propriété MessageClientCredentialType , consultez la propriété Type d’informations d’identification du client Message dans la boîte de dialogue Propriétés de transport WCF-NetMsmq, onglet Envoyer, Sécurité dans l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.
Spécifier le type d'informations d'identification à utiliser lors de l'authentification du client à l'aide de la sécurité basée sur le message.

Valeur par défaut : Windows
AlgorithmSuite Énumération

Pour plus d’informations sur les noms des membres de la propriété AlgorithmSuite , consultez la propriété Suite d’algorithmes dans la boîte de dialogue Propriétés de transport WCF-NetMsmq, onglet Envoyer, Sécurité dans l’aide de l’interface utilisateur et référence de l’espace de noms d’API des développeurs.
Spécifier les algorithmes de chiffrement et Key Wrap du message. Ces algorithmes sont associés à ceux définis dans la spécification Security Policy Language (WS-SecurityPolicy).

Valeur par défaut : Basic256
ClientCertificate String Spécifiez l'empreinte du certificat X.509 pour l'authentification de ce port d'envoi auprès des services. Cette propriété est requise si la propriété ClientCredentialsType a la valeur Certificate. Le certificat à utiliser pour cette propriété doit être installé dans mon magasin à l’emplacement Utilisateur actuel .

La valeur par défaut est une chaîne vide.
ServiceCertificate String Spécifiez l'empreinte du certificat X.509 pour l'authentification du service auquel ce port d'envoi envoie des messages. Le certificat à utiliser pour cette propriété doit être installé dans le magasin Other Personnes à l’emplacement de l’ordinateur local.

La valeur par défaut est une chaîne vide.
AffiliateApplicationName String Spécifiez l'application associée à utiliser pour l'authentification unique (SSO) de l'entreprise.

La valeur par défaut est une chaîne vide.
UseSSO Boolean Indiquez si l'authentification unique est utilisée pour l'extraction des informations d'identification d'un client en vue d'une authentification auprès du serveur de destination.

Valeur par défaut : False
UserName String Spécifiez le nom d’utilisateur à utiliser pour l’authentification auprès du serveur de destination lorsque la propriété UseSSO a la valeur False. Il n'est pas nécessaire de se conformer au format domaine\utilisateur pour cette propriété.

La valeur par défaut est une chaîne vide.
Mot de passe String Spécifiez le mot de passe à utiliser pour l’authentification auprès du serveur de destination lorsque la propriété UseSSO a la valeur False.

La valeur par défaut est une chaîne vide.
OutboundBodyLocation Énumération

- UseBodyElement : utilisez la partie corps du message BizTalk pour créer le contenu de l’élément SOAP Body pour un message sortant.
- UseTemplate : utilisez le modèle fourni dans la propriété OutboundXMLTemplate pour créer le contenu de l’élément SOAP Body pour un message sortant.

Pour plus d’informations sur l’utilisation de la propriété OutboundBodyLocation , consultez Spécification du corps du message pour les adaptateurs WCF.
Spécifiez la sélection des données pour l’élément CORPS SOAP des messages WCF sortants.

Valeur par défaut : UseBodyElement
OutboundXMLTemplate String

Pour plus d’informations sur l’utilisation de la propriété OutboundXMLTemplate , consultez Spécification du corps du message pour les adaptateurs WCF.
Spécifiez le modèle au format XML pour le contenu de l’élément SOAP Body d’un message sortant. Cette propriété est requise si la propriété OutboundBodyLocation est définie sur UseTemplate.

La valeur par défaut est une chaîne vide.

Configurer un port d’envoi WCF-NetMsmq avec la console d’administration BizTalk

Vous pouvez définir les variables de l'adaptateur du port d'envoi WCF-NetMsmq dans la console Administration de BizTalk. Si les propriétés ne sont pas définies pour le port d'envoi, les valeurs par défaut pour la configuration du port d'envoi WCF-NetMsmq sont utilisées, comme indiqué dans le tableau précédent.

Configurer des variables pour un port d’envoi WCF-NetMsmq

  1. Dans la console Administration de BizTalk, créez un port d'envoi ou double-cliquez sur un port d'envoi existant pour le modifier. Pour plus d’informations, consultez Création d’un port d’envoi. Configurez toutes les options de port d’envoi et spécifiez WCF-NetMsmq pour l’option Type dans la section Transport de l’onglet Général de l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.

  2. Sous l’onglet Général , dans la section Transport , cliquez sur le bouton Configurer en regard de Type.

  3. Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , sous l’onglet Général , configurez l’adresse du point de terminaison, l’identité du service et l’en-tête SOAPAction pour le port d’envoi WCF-NetMsmq. Pour plus d’informations sur l’onglet Général dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , consultez la boîte de dialogue Propriétés de transport WCF-NetMsmq, Onglet Envoyer, Général dans l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.

  4. Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , sous l’onglet Liaison , configurez les paramètres de délai d’attente et de transaction. Pour plus d’informations sur l’onglet Liaison dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , consultez la boîte de dialogue Propriétés de transport WCF-NetMsmq, Onglet Envoyer, Liaison dans l’aide de l’interface utilisateur et référence de l’espace de noms d’API des développeurs.

  5. Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , sous l’onglet Sécurité , définissez les fonctionnalités de sécurité du port d’envoi WCF-NetMsmq. Pour plus d’informations sur l’onglet Sécurité dans la boîte de dialogue Propriétés de transport WCF-NetMsmq , consultez la boîte de dialogue Propriétés de transport WCF-NetMsmq, Envoyer, onglet Sécurité dans l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.

  6. Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , sous l’onglet Messages , spécifiez la sélection des données pour l’élément SOAP Body . Pour plus d’informations sur l’onglet Messages dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , consultez la boîte de dialogue Propriétés de transport WCF-NetMsmq, onglet Envoyer, Messages dans l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.

Configurer un port d’envoi WCF-NetMsmq par programmation

Vous pouvez utiliser le format suivant pour définir les propriétés :

<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>  

Le fragment de code suivant illustre la création d'un port d'envoi WCF-NetMsmq :

// 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();  

Voir aussi

Propriétés et schéma de propriété des adaptateurs WCF
Installation de certificats pour les adaptateurs WCF
Spécification du corps de message pour les adaptateurs WCF
Configuration de l’adaptateur WCF-NetMsmq
Configuration des ports d’envoi dynamiques à l’aide des propriétés de contexte des adaptateurs WCF