Configuration d'un port d'envoi WCF-Custom
Vous pouvez configurer un port d'envoi WCF-Custom par programme ou à l'aide de la console Administration de BizTalk.
Propriétés de configuration
Le modèle objet BizTalk Explorer expose une interface spécifique à l’adaptateur pour les ports d’envoi nommé 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-Custom sous la forme d'une paire nom-valeur de chaînes XML.
La propriété TransportTypeData de l’interface ITransportInfo n’est pas obligatoire. Si elle n'est pas définie, l'adaptateur utilise les valeurs par défaut pour la configuration du port d'envoi WCF-Custom, comme indiqué dans le tableau suivant.
La liste suivante décrit les propriétés de configuration que vous pouvez définir dans le modèle objet BizTalk Explorer pour WCF-Custom ports d’envoi :
Nom de la propriété : Identité
Type : Objet blob XML
Exemple :
<identity> <userPrincipalName value="username@contoso.com" /> </identity>
Description : 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 de communication entre le client et le service, l'infrastructure WCF garantit que l'identité du service attendu correspond aux valeurs de cet élément. Les valeurs qui peuvent être spécifiées pour la propriété Identity diffèrent en fonction de la configuration de sécurité.
La valeur par défaut est une chaîne vide.
Nom de la propriété : StaticAction
Type : String
Description : 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’actions. Si vous définissez cette propriété au format d’action unique, par
http://contoso.com/Svc/Op1
exemple , l’en-tête SOAPAction des messages sortants est toujours défini sur la valeur spécifiée dans cette propriété.Si vous définissez cette propriété au format de mappage d’actions, 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, puis l’adaptateur d’envoi WCF utilise
http://contoso.com/Svc/Op1
pour l’en-tête SOAPAction sortant.<BtsActionMapping> <Operation Name="Op1" Action="http://contoso.com/Svc/Op1" /> <Operation Name="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é d’opération dans les composants de pipeline.
La valeur par défaut est une chaîne vide.
Nom de la propriété : BindingType
Type : Énumération
Pour plus d’informations sur les noms des membres de la propriété BindingType , consultez la propriété Type de liaison dans la boîte de dialogue Propriétés de transport personnalisées WCF, onglet Envoyer, Liaison dans l’aide de l’interface utilisateur et référence de l’espace de noms d’API des développeurs.
Description : spécifiez le type de liaison à utiliser pour le point de terminaison utilisé par ce port d’envoi.
Si vous utilisez une liaison personnalisée, la propriété BindingType peut être configurée avec les liaisons personnalisées. Pour plus d’informations sur l’utilisation de la liaison personnalisée, consultez Comment activer les points d’extensibilité WCF avec les adaptateurs WCF.
Nom de la propriété : BindingConfiguration
Type : Objet blob XML
Exemple :
<binding name="netNamedPipeBinding"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None" /> </binding>
Description : spécifiez une chaîne XML avec l’élément
<binding>
pour configurer différents types de liaisons prédéfinies fournies par Windows Communication Foundation (WCF). Pour plus d'informations sur la liaison fournie par le système et la liaison personnalisée, consultez les rubriques appropriées répertoriées dans la section Voir aussi.BizTalk Server ne prend pas en charge tous les types d’éléments d’extension de liaison que vous pouvez configurer avec la propriété BindingConfiguration.
La valeur par défaut est une chaîne vide.
Nom de la propriété : EndpointBehaviorConfiguration
Type : Objet blob XML
Exemple :
<behavior name="sampleBehavior"> <callbackTimeouts /> </behavior>
Description : spécifiez une chaîne XML avec l’élément
<behavior>
de l’élément<endpointBehaviors>
pour configurer les paramètres de comportement d’un point de terminaison WCF. Pour plus d’informations sur l’élément<endpointBehaviors>
, consultez la rubrique appropriée dans Voir aussi.BizTalk Server ne prend pas en charge tous les types d’éléments d’extension de comportement que vous pouvez configurer avec la propriété EndpointBehaviorConfiguration.
La valeur par défaut est une chaîne vide.
Nom de la propriété : AffiliateApplicationName
Type : String
Description : spécifiez l’application associée à utiliser pour Enterprise Single Sign-On (SSO).
La valeur par défaut est une chaîne vide.
Nom de la propriété : UseSSO
Type : booléen
Description : spécifiez s’il faut utiliser l'Sign-On unique pour récupérer les informations d’identification du client pour l’authentification auprès du serveur de destination.
Valeur par défaut : False
Nom de la propriété : UserName
Type : String
Description : 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. Vous n’avez pas besoin d’utiliser le
domain\user
format pour cette propriété.La valeur par défaut est une chaîne vide.
Nom de la propriété : Mot de passe
Type : String
Description : 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.
Nom de la propriété : OutboundBodyLocation
Type : É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.
Description : spécifiez la sélection des données pour l’élément CORPS SOAP des messages WCF sortants.
Valeur par défaut : UseBodyElement
Nom de la propriété : OutboundXMLTemplate
Type : String
Pour plus d’informations sur l’utilisation de la propriété OutboundXMLTemplate , consultez Spécification du corps du message pour les adaptateurs WCF.
Description : 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.
Nom de la propriété : InboundBodyLocation
Type : Énumération
- UseBodyElement : utilisez le contenu de l’élément CORPS SOAP d’un message entrant pour créer le 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. Cette propriété est valide uniquement pour des ports de sollicitation-réponse.
- 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.
Description : spécifiez la sélection des données pour l’élément CORPS SOAP des messages WCF entrants.
Valeur par défaut : UseBodyElement
Nom de la propriété : InboundBodyPathExpression
Type : 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.
Description : spécifiez l’expression de chemin d’accès au corps pour identifier une partie spécifique d’un message entrant utilisé 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. Cette propriété est valide uniquement pour des ports de sollicitation-réponse.
La valeur par défaut est une chaîne vide.
Nom de la propriété : InboundNodeEncoding
Type : Enum
- XML
- Base64 : encodage 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 XML externe du nœud sélectionné par l’expression de chemin du corps dans InboundBodyPathExpression.
Description : spécifiez le type d’encodage que l’adaptateur d’envoi WCF-Custom utilise pour décoder le nœud identifié par le chemin du corps spécifié dans InboundBodyPathExpression. Cette propriété est obligatoire si la propriété InboundBodyLocation a la valeur UseBodyPath. Cette propriété est valide uniquement pour des ports de sollicitation-réponse.
Valeur par défaut : XML
Nom de la propriété : PropagateFaultMessage
Type : Boolean
- True : routez le message qui échoue le traitement sortant vers une application d’abonnement (par exemple, un autre port de réception ou une planification d’orchestration).
- False : Suspendez les messages ayant échoué et générez un accusé de réception négatif (NACK).
Description : spécifiez si le routage ou la suspension des messages a échoué dans le traitement sortant.
Cette propriété est valide uniquement pour des ports de sollicitation-réponse.
Valeur par défaut : True
Nom de la propriété : ReferencedBindings
Type : Objet blob XML
Exemple :
<BindingConfiguration vt="8"> <wsFederationHttpBinding> <binding name="sampleBinding"> <security mode="Message"> <message issuedKeyType="AsymmetricKey"> <issuer address="http://www.contoso.com/samplests" binding="wsFederationHttpBinding" bindingConfiguration="contosoSTSBinding"/> </message> </security> </binding> </wsFederationHttpBinding> </BindingConfiguration> <ReferencedBindings vt="8"> <bindings> <wsFederationHttpBinding> <binding name="contosoSTSBinding"> <security mode="Message"> <message negotiateServiceCredential="false"> <issuer address="http://northwind.com/samplests" bindingConfiguration="northwindBinding" binding="wsHttpBinding"> </issuer> </message> </security> </binding> </wsFederationHttpBinding> <wsHttpBinding> <binding name="northwindBinding"> <security mode="Message"> <message clientCredentialType="Certificate" /> </security> </binding> </wsHttpBinding> </bindings> </ReferencedBindings>
La propriété ReferencedBinding ne doit pas contenir la configuration de liaison utilisée dans la propriété BindingConfiguration .
Description : spécifiez les configurations de liaison référencées par l’attribut bindingConfiguration de l’élément
<issuer>
pour wsFederationHttpBinding et customBinding, qui indique le service STS (Security Token Service) qui émet des jetons de sécurité. Pour plus d’informations sur l’élément<issuer>
, consultez Schéma de configuration WCF :<issuer>
.Les informations de liaison, y compris l’élément
<issuer>
pour wsFederationHttpBinding et customBinding , peuvent être configurées via la propriété BindingConfiguration des adaptateurs WCF-Custom et WCF-CustomIsolated. Toutes les configurations de liaison référencées pour cette propriété doivent être placées sous la forme de l’élément<bindings>
.Vous ne pouvez pas configurer cette propriété sous l’onglet Liaison dans la boîte de dialogue propriétés de transport. Vous pouvez importer et exporter cette propriété via l’onglet Importation/Exportation de la boîte de dialogue propriétés de transport des adaptateurs WCF-Custom et WCF-CustomIsolated.
L’attribut bindingConfiguration de l’élément
<issuer>
doit faire référence à un nom de liaison valide dans cette propriété.L’élément
<issuer>
dans les configurations de liaison référencées peut également faire référence à une configuration de liaison différente dans cette propriété si cette chaîne de référence n’crée pas de dépendance circulaire.La valeur par défaut est une chaîne vide.
Configurer un port d’envoi WCF-Custom avec la console d’administration BizTalk
Vous pouvez définir les variables de l'adaptateur du port d'envoi WCF-Custom 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-Custom sont utilisées, comme indiqué dans le tableau précédent.
Configurer des variables pour un port d’envoi WCF-Custom
Lors de la configuration de l'adaptateur WCF-Custom, si vous envisagez d'utiliser les points d'extensibilité WCF tels que les éléments de liaison personnalisés, l'élément de comportement personnalisé et les composants du canal personnalisés, vous devez ajouter les assemblys qui implémentent les points d'extensibilité ainsi que tous les assemblys dépendants dans le GAC (Global Assembly Cache) à la fois sur l'ordinateur de traitement BizTalk (ordinateur d'exécution) et sur l'ordinateur d'administration. En outre, vous devez inscrire les composants d'extension dans le fichier machine.config. Pour plus d’informations sur l’utilisation des points d’extensibilité WCF avec l’adaptateur WCF personnalisé, consultez Comment activer les points d’extensibilité WCF avec les adaptateurs WCF.
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-Custom 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.
Sous l’onglet Général , dans la section Transport , cliquez sur le bouton Configurer en regard de Type.
Dans la boîte de dialogue Propriétés de transport WCF-Custom, 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-Custom. Pour plus d’informations sur l’onglet Général de la boîte de dialogue Propriétés de transport WCF-Custom, consultez la boîte de dialogue Propriétés de transport WCF-Custom Transport, Envoyer, onglet 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 de transport personnalisées WCF , sous l’onglet Liaison , configurez différents types de liaisons prédéfinies ou personnalisées pour WCF. Pour plus d’informations sur l’onglet Liaison dans la boîte de dialogue Propriétés de transport WCF-Custom, consultez la boîte de dialogue Propriétés de transport WCF-Custom Transport, Envoyer, onglet 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 de transport WCF-Custom, sous l’onglet Comportement , configurez le comportement du point de terminaison pour ce port d’envoi. Le comportement de point de terminaison est représenté par un jeu d'éléments d'extension de comportement qui modifie ou étend la fonction du service ou du client. Pour plus d’informations sur l’onglet Comportement dans la boîte de dialogue Propriétés de transport WCF-Custom Transport, consultez la boîte de dialogue Propriétés de transport WCF-Custom Transport, Onglet Envoyer, Comportement 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 de transport personnalisées WCF , sous l’onglet Informations d’identification , spécifiez les informations d’identification à utiliser lors de l’envoi de messages. Pour plus d’informations sur l’onglet Informations d’identification de la boîte de dialogue Propriétés de transport WCF-Custom Transport, consultez la boîte de dialogue Propriétés de transport WCF-Custom Transport, Onglet Envoyer, Informations d’identification 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 de transport WCF-Custom , 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 de la boîte de dialogue Propriétés de transport WCF-Custom, consultez la boîte de dialogue Propriétés de transport WCF-Custom Transport, 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.
Dans la boîte de dialogue Propriétés de transport WCF-Custom, sous l’onglet Importation/Exportation , importez et exportez les propriétés Adresse (URI) et Identité de point de terminaison sous l’onglet Général , les informations de liaison sous l’onglet Liaison et le comportement du point de terminaison sous l’onglet Comportement de ce port d’envoi. Pour plus d’informations sur l’onglet Importation/Exportation dans la boîte de dialogue Propriétés de transport WCF-Custom , consultez la boîte de dialogue Propriétés de transport WCF-Custom, Onglet Envoyer, Importer-Exporter 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-Custom par programmation
Vous pouvez utiliser le format suivant pour définir les propriétés :
<CustomProps>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<InboundBodyPathExpression vt="8" />
<EndpointBehaviorConfiguration vt="8"><behavior name="sampleBehavior"><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<BindingConfiguration vt="8"><binding name="NetNamedPipeOrderProcessService.OrderProcessServieEndpoint"><readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /><security mode="None" /></binding></BindingConfiguration>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<UseSSO vt="11">0</UseSSO>
<AffiliateApplicationName vt="8" />
<BindingType vt="8">netNamedPipeBinding</BindingType>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<UserName vt="8" />
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
</CustomProps>
Le fragment de code suivant illustre la création d'un port d'envoi WCF-Custom :
// Use BizTalk Explorer object model to create new WCF-Custom 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>
<EndpointBehaviorConfiguration vt=""8""><behavior name=""sampleBehavior""><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<BindingType vt=""8"">netNamedPipeBinding</BindingType>
</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-Custom"];
sendPort.PrimaryTransport.Address = "net.pipe://mycomputer/private/samplequeue";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
Voir aussi
Schéma et propriétés de la propriété Adaptateurs WCF: spécification du corps du message pour les adaptateurs WCFInstallation de certificats pour les adaptateurs WCFLa configuration de l’adaptateur WCF-CustomConfiguration des ports d’envoi dynamiques à l’aide des propriétés<de contexte des adaptateurs WCF lie><le comportement> de <endpointBehaviors>