Configuration d'un emplacement de réception WCF-Custom
Vous pouvez configurer un emplacement de réception WCF-Custom 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-Custom 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-Custom utilise les valeurs par défaut pour la configuration de l'emplacement de réception WCF-Custom, 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-Custom.
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. |
BindingType | Énumération - basicHttpBinding - customBinding - mexHttpBinding - mexHttpsBinding - mexNamedPipeBinding - mexTcpBinding - netMsmqBinding - netNamedPipeBinding - netPeerTcpBinding - Nettcpbinding - wsDualHttpBinding - wsFederationHttpBinding - wsHttpBinding |
Spécifiez le type de liaison à utiliser pour le point de terminaison qu'utilise cet emplacement de réception. Note: 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. La valeur par défaut est une chaîne vide. |
BindingConfiguration | Blob XML Exemple : <binding name="netNamedPipeBinding"><security mode="None » /></binding> |
Spécifiez une chaîne XML avec l’élément <de liaison> 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 correspondantes de la section Voir aussi. Remarque : 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. |
ServiceBehaviorConfiguration | Blob XML Exemple : <behavior name="SampleServiceBehavior"><serviceMetadata httpGetEnabled="true » httpGetUrl= »http://mycomputer:9995/SampleMex" ; /><serviceCredentials /></behavior> |
Spécifiez une chaîne XML avec l’élément <behavior> de l’élément <serviceBehaviors> pour configurer les paramètres de comportement d’un service WCF. Pour plus d’informations sur l’élément <serviceBehaviors> , consultez la rubrique appropriée dans Voir aussi. La valeur par défaut est une chaîne vide. |
EndpointBehaviorConfiguration | Blob XML Exemple : <behavior name="sampleBehavior"><callbackTimeouts /></behavior> |
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. Remarque : 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. |
CredentialType | Énumération - Aucun : n’utilisez pas d’informations d’identification lorsque cet emplacement de réception envoie des messages de sollicitation pour interroger un service externe, ou cet emplacement de réception n’a pas besoin d’interroger un service externe. - IssueTicket : utilisez l'Sign-On unique d’entreprise (SSO) pour récupérer les informations d’identification du client afin d’émettre un ticket d’authentification unique. Cette option requiert l'utilisation du mode de sécurité permettant à cet emplacement de réception d'emprunter l'identité du compte d'utilisateur pour émettre un ticket SSO. - UserAccount : utilisez les informations d’identification spécifiées dans les propriétés Nom d’utilisateur et Mot de passe lorsque cet emplacement de réception envoie des messages de sollicitation pour interroger un service externe. - GetCredentials : utilisez l’application associée à l’authentification unique spécifiée dans la propriété AffiliateApplicationName lorsque cet emplacement de réception envoie des messages de sollicitation pour interroger un service externe. |
Spécifiez le type d'informations d'identification de cet emplacement de réception à utiliser lors de l'interrogation d'un service externe. Valeur par défaut : None |
UserName | String | Indiquez le nom d'utilisateur de cet emplacement de réception à utiliser lors de l'interrogation d'un service externe pour récupérer des messages de réponse. Cette propriété est requise lorsque la propriété CredentialType est définie sur UserAccount. La valeur par défaut est une chaîne vide. |
Mot de passe | String | Indiquez le mot de passe de cet emplacement de réception à utiliser lors de l'interrogation d'un service externe pour récupérer des messages de réponse. Cette propriété est requise lorsque la propriété CredentialType est définie sur UserAccount. La valeur par défaut est une chaîne vide. |
AffiliateApplicationName | String | Indiquez l'application associée SSO pour renvoyer des informations d'identification externes à utiliser lorsque cet emplacement de réception envoie des messages de sollicitation pour interroger un service externe. L'application associée SSO spécifiée doit comporter un mappage entre le compte Windows d'exécution de cet emplacement de réception et le compte du service externe. Cette propriété est requise lorsque la propriété CredentialType a la valeur GetCredentials. La valeur par défaut est une chaîne vide. |
OrderedProcessing | Boolean | Spécifier s'il est nécessaire de conserver ou non l'ordre des messages lors de leur traitement (à utiliser avec la liaison NetMsmq). Valeur par défaut : False |
InboundBodyLocation | Énumération - UseBodyElement : utilisez le contenu de l’élément SOAP Body d’un message entrant pour créer la partie 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-Custom 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 |
OutboundBodyLocation | Énumération - UseBodyElement : utilisez la partie corps du message BizTalk pour créer le contenu de l’élément CORPS SOAP pour un message de réponse 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 de réponse 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. Cette propriété est valide uniquement pour des emplacements de réception de type requête-réponse. 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 de réponse sortant. Cette propriété est requise si la propriété OutboundBodyLocation est définie sur UseTemplate. Cette propriété est valide uniquement pour des emplacements de réception de type requête-réponse. La valeur par défaut est une chaîne vide. |
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 |
ReferencedBindings | 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> </Sécurité> </Contraignant> </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 »> </Émetteur> </Message> </Sécurité> </Contraignant> </wsFederationHttpBinding> <wsHttpBinding> <binding name="northwindBinding »> <security mode="Message »> <message clientCredentialType="Certificate » /> </Sécurité> </Contraignant> </wsHttpBinding> </Liaisons> </ReferencedBindings>Remarque : la propriété ReferencedBinding ne doit pas contenir la configuration de liaison utilisée dans la propriété BindingConfiguration . |
Spécifiez les configurations de liaison référencées par l’attribut bindingConfiguration de l’élément <émetteur> pour wsFederationHttpBinding et customBinding, ce qui indique le service STS (Security Token Service) qui émet des jetons de sécurité. Pour plus d’informations sur l’élément <émetteur> , consultez la rubrique «< émetteur> » à l’adresse https://go.microsoft.com/fwlink/?LinkId=83476. Les informations de liaison, y compris l’élément <émetteur> pour wsFederationHttpBinding et customBinding , peuvent être configurées via la propriété BindingConfiguration du WCF-Custom et les adaptateurs 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> . Note: 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 Import/Export dans la boîte de dialogue propriétés de transport des cartes WCF-Custom et WCF-CustomIsolated. Note: L’attribut bindingConfiguration de l’élément <émetteur> doit faire référence à un nom de liaison valide dans cette propriété. Note:L’élément< émetteur> dans les configurations de liaison référencées peut également faire référence à une autre configuration de liaison dans sa 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 emplacement de réception WCF-Custom avec la console d’administration BizTalk
Vous pouvez définir des variables d'emplacement de réception pour l'adaptateur WCF-Custom 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.
Configurer des variables pour un emplacement de réception 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 BizTalk, développez BizTalk Server Administration, Groupe BizTalk, Applications, puis développez 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-Custom dans la liste déroulante, puis cliquez sur Configurer.
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 et l’identité du service pour l’emplacement de réception 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, Recevoir, 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, Recevoir, 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 les comportements de point de terminaison et de service pour cet emplacement de réception. Le comportement du 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, Recevoir, onglet 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 Autre , configurez les informations d’identification de cet emplacement de réception à utiliser lors de l’interrogation d’un service externe et si cet emplacement de réception conserve l’ordre des messages lors du traitement des messages. Pour plus d’informations sur l’onglet Autre 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, Recevoir, Autre onglet 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 Transport, consultez la boîte de dialogue Propriétés de transport WCF-Custom, 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.
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 cet emplacement de réception. 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 Réception, Importation-Exportation dans les conseils d’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-Custom par programmation
Vous pouvez utiliser le format suivant pour définir les propriétés :
<CustomProps>
<InboundBodyPathExpression vt="8" />
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<BindingConfiguration vt="8"><binding name="netNamedPipeBinding"><security mode="None" /></binding></BindingConfiguration>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<CredentialType vt="8">GetCredentials</CredentialType>
<Identity vt="8" />
<ServiceBehaviorConfiguration vt="8"><behavior name="SampleServiceBehavior"><serviceMetadata httpGetEnabled="true" httpGetUrl="http://mycomputer:9995/SampleService/Mex" /><serviceCredentials /></behavior></ServiceBehaviorConfiguration>
<Password vt="1" />
<OrderedProcessing vt="11">-1</OrderedProcessing>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<AffiliateApplicationName vt="8">SampleAffiliateApplication</AffiliateApplicationName>
<DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
<SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
<BindingType vt="8">netNamedPipeBinding</BindingType>
<UserName vt="8">Hello</UserName>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<EndpointBehaviorConfiguration vt="8"><behavior name="EndpointBehavior" /></EndpointBehaviorConfiguration>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Le fragment de code suivant illustre la création d'un emplacement de réception WCF-Custom :
// Use BizTalk Explorer object model to create new WCF-Custom 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>
<BindingConfiguration vt=""8""><binding name=""netNamedPipeBinding""><security mode=""None"" /></binding></BindingConfiguration>
<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 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-Custom
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-Custom" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.pipe://mycomputer/samplePipeName";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-Custom"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
Voir aussi
Publication de métadonnées de service pour les adaptateurs de réception WCF Gérant leshôtes BizTalk et les instances d’hôteComment 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 l’adaptateur WCF-CustomComment créer un comportement d’application<associée du <comportement> des liaisons endpointBehaviors><><de <>serviceBehaviors>