Configuration d'un emplacement de réception WCF-NetMsmq
Vous pouvez configurer un emplacement de réception WCF-NetMsmq par programme ou à l'aide de la console Administration de BizTalk.
Propriétés de configuration
Le modèle objet de l'Explorateur BizTalk permet de créer et de configurer les emplacements de réception par programme. Le modèle objet Explorer BizTalk expose l’interface de configuration de l’emplacement de réceptionIReceiveLocation qui a une propriété de lecture/écriture TransportTypeData. Cette propriété accepte le jeu de propriétés de configuration de l'emplacement de réception WCF-NetMsmq sous la forme d'une chaîne XML composée d'une paire nom/valeur. Pour définir cette propriété dans le modèle objet BizTalk Explorer, vous devez définir la propriété InboundTransportLocation de l’interface IReceiveLocation.
La propriété TransportTypeData de l’interface IReceiveLocation n’a pas besoin d’être définie. Dans ce cas, l'adaptateur WCF-NetMsmq utilise les valeurs par défaut pour la configuration de l'emplacement de réception 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 l'emplacement de réception 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 fourni par cet emplacement de réception. Les valeurs qui peuvent être spécifiées pour la propriété Identity diffèrent en fonction de la configuration de la sécurité. Ces paramètres permettent au client d'authentifier cet emplacement de réception. 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. |
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. 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 |
MaxReceivedMessageSize | Integer | Spécifiez la taille maximale en octets d'un message (en-têtes inclus) et pouvant être reçu sur le câble. La taille des messages est limitée par la quantité de mémoire allouée pour chacun d'eux. Vous pouvez vous servir de cette propriété afin de limiter les expositions aux attaques de type refus de service. Valeur par défaut : 65536 |
EnableTransaction | Boolean | Spécifier le type de file d'attente des messages : transactionnelle ou non transactionnelle. Si cette propriété est sélectionnée, chaque message est remis une seule fois et l'expéditeur est notifié des échecs de remise. Pour envoyer des messages via des ports d’envoi transactionnels, les éléments de liaison durable et exactlyOnce du client doivent avoir la valeur True. Si cette propriété est désactivée, les messages sont transférés sans garantie de remise. Note: Si vous utilisez une file d’attente transactionnelle sous cet emplacement de réception, cette propriété doit être sélectionnée. Valeur par défaut : False |
OrderedProcessing | Boolean | Spécifier si vous voulez traiter les messages par séries. Lorsque cette propriété est sélectionnée, cet emplacement de réception prend en charge la remise des messages ordonnés lorsqu’il est utilisé conjointement avec une messagerie BizTalk ou un port d’envoi d’orchestration pour lequel l’option Remise ordonnée est définie sur True . Vous pouvez sélectionner cette option uniquement lorsque la propriété EnableTransaction a la valeur True.Pour plus d’informations sur l’option Livraison ordonnée , consultez les rubriques appropriées dans Voir aussi. Lorsque cette propriété a la valeur True, l’emplacement de réception WCF-NetMsmq optimise l’utilisation des ressources lors de la gestion des messages volumineux en rendant l’adaptateur monothread. Valeur par défaut : False |
MaxConcurrentCalls | Integer | Spécifier le nombre d'appels simultanés par instance de service unique. Les appels excédentaires sont mis en file d'attente. La plage de cette propriété est comprise entre 0 et Int32.MaxValue. Valeur par défaut : 200 |
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, Recevoir, 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 Réception, Sécurité dans les instructions de l’interface utilisateur et informations de référence sur 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. - Signe : 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. Le chiffrement garantit l'intégrité des messages, tandis que la signature et le chiffrement garantissent à la fois l'intégrité et le non-rejet des messages. 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 Réception, 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 Réception, 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 |
ServiceCertificate | String | Spécifier l'empreinte du certificat X.509 pour cet emplacement de réception permettant au client d'authentifier le service. Le certificat à utiliser pour cette propriété doit être installé dans mon magasin à l’emplacement Utilisateur actuel . Note: Vous devez installer le certificat de service dans l’emplacement Utilisateur actuel du compte d’utilisateur du gestionnaire de réception hébergeant cet emplacement de réception. La valeur par défaut est une chaîne vide. |
InboundBodyLocation | Énumération - UseBodyElement : utilisez le contenu de l’élément SOAP Body d’un message entrant pour créer le composant corps du message BizTalk. Si l’élément Body a plusieurs éléments enfants, seul le premier élément devient le corps du message BizTalk. - UseEnvelope : créez la partie corps du message BizTalk à partir de l’enveloppe SOAP entière d’un message entrant. - UseBodyPath : utilisez l’expression de chemin d’accès au corps dans la propriété InboundBodyPathExpression pour créer le composant corps du message BizTalk. L’expression de chemin de corps est évaluée par rapport à l’élément enfant immédiat de l’élément SOAP Body d’un message entrant. Cette propriété est valide uniquement pour des ports de sollicitation-réponse. Pour plus d’informations sur l’utilisation de la propriété InboundBodyLocation , 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 entrants. Valeur par défaut : UseBodyElement |
InboundBodyPathExpression | String Pour plus d’informations sur l’utilisation de la propriété InboundBodyPathExpression , consultez Schéma et propriétés de la propriété d’adaptateurs WCF. |
Spécifiez l'expression de chemin de corps afin d'identifier une partie spécifique du message entrant utilisée pour créer le corps du message BizTalk. Cette expression de chemin de corps est évaluée par rapport à l’élément enfant immédiat du nœud CORPS SOAP d’un message entrant. Si cette expression de chemin de corps retourne plusieurs nœuds, seul le premier devient le corps du message BizTalk. Cette propriété est obligatoire si la propriété InboundBodyLocation est définie sur UseBodyPath. La valeur par défaut est une chaîne vide. |
InboundNodeEncoding | Énumération - Encodage Base64 - Base64. - Hexadécimal - Encodage hexadécimal. - Chaîne - Encodage de texte - UTF-8. - XML : les adaptateurs WCF créent le corps du message BizTalk avec le code XML externe du nœud sélectionné par l’expression de chemin d’accès au corps dans InboundBodyPathExpression. |
Spécifiez le type d’encodage utilisé par l’adaptateur de réception WCF-NetMsmq pour décoder le nœud identifié par l’expression de chemin d’accès du corps spécifiée dans InboundBodyPathExpression. Cette propriété est obligatoire si la propriété InboundBodyLocation est définie sur UseBodyPath. Valeur par défaut : XML |
DisableLocationOnFailure | Boolean | Spécifiez s'il faut désactiver l'emplacement de réception pour lequel le traitement entrant a échoué en raison d'une erreur de pipeline de réception ou d'un échec de routage. Valeur par défaut : False |
SuspendMessageOnFailure | Boolean | Spécifier s'il faut interrompre le message de requête dont le traitement entrant a échoué en raison d'une erreur de pipeline de réception ou d'un échec de routage. Valeur par défaut : True |
IncludeExceptionDetailInFaults | Boolean | Spécifiez s'il faut inclure des informations sur l'exception gérée dans le détail des dysfonctionnements SOAP renvoyé au client à des fins de débogage. Valeur par défaut : False |
Configurer un emplacement de réception WCF-NetMsmq avec la console d’administration BizTalk
Vous pouvez définir des variables d'emplacement de réception pour l'adaptateur WCF-NetMsmq dans la console Administration de BizTalk Server. Si les propriétés ne sont pas définies pour l'emplacement de réception, les valeurs par défaut du gestionnaire de réception définies dans la console Administration de BizTalk sont utilisées.
Notes
Avant d'effectuer la procédure suivante, vous devez avoir ajouté un port de réception. Pour plus d'informations, consultez la rubrique Création d'un port de réception.
Notes
Les configurations de liaison des clients WCF et des emplacements de réception WCF-NetMsmq doivent correspondre. Si elles ne correspondent pas, les emplacements de réception WCF-NetMsmq peuvent perdre des messages entrant.
Configurer des variables pour un emplacement de réception WCF-NetMsmq
Dans la console Administration BizTalk, développez BizTalk ServerAdministration, BizTalk Group, Applications, puis l’application dans laquelle vous souhaitez créer un emplacement de réception.
Dans le volet gauche de la console Administration de BizTalk, cliquez sur le nœud Port de réception . Dans le volet droit, cliquez avec le bouton droit sur le port de réception associé à un emplacement de réception existant ou auquel associer un nouvel emplacement, puis cliquez sur Propriétés.
Dans la boîte de dialogue Propriétés du port de réception, dans le volet gauche, sélectionnez Emplacements de réception, puis dans le volet droit, double-cliquez sur un emplacement de réception existant ou cliquez sur Nouveaupour créer un emplacement de réception.
Dans la boîte de dialogue Propriétés de l’emplacement de réception, dans la section Transport en regard de Type, sélectionnez WCF-NetMsmq dans la liste déroulante, puis cliquez sur Configurer.
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 et l’identité du service pour l’emplacement de réception WCF-NetMsmq. Pour plus d’informations sur l’onglet Général de 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, Onglet Recevoir, 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.
Dans la boîte de dialogue Propriétés du transport WCF-NetMsmq , sous l’onglet Liaison , configurez les propriétés 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 de transport WCF-NetMsmq , consultez la boîte de dialogue Propriétés de transport WCF-NetMsmq, Onglet Réception, Liaison dans l’aide de l’interface utilisateur et informations de référence sur l’espace de noms d’API des développeurs.
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é de l’emplacement de réception 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, Recevoir, 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.
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 de transport WCF-NetMsmq , consultez la boîte de dialogue Propriétés de transport WCF-NetMsmq, Onglet Réception, 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 emplacement de réception WCF-NetMsmq par programmation
Vous pouvez utiliser le format suivant pour définir les propriétés :
<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>
Le fragment de code suivant illustre la création d'un emplacement de réception WCF-NetMsmq :
// 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();
Voir aussi
Publication des métadonnées de service pour les adaptateurs de réception WCFGestion des hôtes Et des instances hôtes BizTalkComment modifier les comptes de service et les mots de passeInstallation de certificats pour les adaptateurs WCFSpécification du corps du message pour les adaptateurs WCFConfiguration de la remise ordonnée de l’adaptateur WCF-NetMsmqdes messagesd’envoi et de récupération de messages dans une file d’attente de messages de transaction et des files d’attente publiques et privéesActive Directory