Partager via


Configuration des ports d'envoi dynamiques à l'aide des propriétés de contexte des adaptateurs WCF

Vous pouvez configurer des ports d'envoi dynamiques pour les adaptateurs WCF. L’URI, l’action et la liaison peuvent être déterminés à partir d’une propriété sur un message entrant, puis spécifiés dans la forme Expression , comme indiqué dans l’adaptateur WCF-NetTcp suivant :

MessageOut=MessageIn;  
MessageOut(WCF.Action)="http://tempuri.org/IReceiveMessage/ReceiveMessage";  
MessageOut(WCF.SecurityMode)="Transport";  
MessageOut(WCF.TransportClientCredentialType)="Windows";  
DynamicSendPort(Microsoft.XLANGs.BaseTypes.Address)="net.tcp://localhost:8001/netTcp";  
DynamicSendPort(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-NetTcp";  

Le code suivant montre comment spécifier les propriétés de contexte WCF dans la forme Expression d’un adaptateur WCF-Custom :

MessageOut=MessageIn;  
MessageOut(WCF.BindingType)="customBinding";  
MessageOut(WCF.Action)="http://tempuri.org/IReceiveMessage/ReceiveMessage";  
MessageOut(WCF.BindingConfiguration)=@"<binding name=""customBinding""><binaryMessageEncoding /><tcpTransport /></binding>";  
DynamicSendPort(Microsoft.XLANGs.BaseTypes.Address)="net.tcp://localhost:8001/customNetTcp";  
DynamicSendPort(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-Custom";  

Lors de la configuration des propriétés de contexte WCF, les éléments à prendre en compte sont les suivants :

  • Certaines adresses peuvent être mappées vers plusieurs adaptateurs. Par exemple, une adresse commençant par http:// ou https:// peut être traitée par l'adaptateur HTTP comme par les adaptateurs WCF-BasicHttp, WCF-WsHttp ou WCF-Custom. Un autre exemple réside dans l'utilisation du début d'adresse net.tcp:// dans les deux exemples de code précédents ; toutefois, étant donné que le deuxième exemple de code fait appel à une liaison personnalisée, il est recommandé d'utiliser l'adaptateur WCF-Custom pour traiter cette adresse. Par conséquent, pour identifier l’adaptateur approprié, vous devez configurer le champ Facultatif Microsoft.XLANGs.BaseTypes.TransportType dans une forme Expression avec l’adaptateur que vous souhaitez utiliser.

    Notes

    Si l’adresse commence par http:// ou https://, et si vous ne spécifiez pas le champ Microsoft.XLANGs.BaseTypes.TransportType , par défaut, le moteur BizTalk utilise l’adaptateur HTTP.

  • WCF. BindingType identifie la liaison par son nom. Les valeurs possibles sont les suivantes :

    • basicHttpBinding

    • customBinding

    • netMsmqBinding

    • netNamedPipeBinding

    • netTcpBinding

    • wsFederationHttpBinding

    • wsHttpBinding

      La liste ci-dessus peut être étendue. Vous pouvez y ajouter votre propre liaison, par exemple FtpBinding.

  • WCF. BindingConfiguration spécifie la configuration de liaison pour le type de liaison. Elle récupère toute liaison inscrite dans le fichier de configuration de l'ordinateur. Elle récupère également la configuration XML dans un format identique à celui utilisé dans la configuration des liaisons du fichier de configuration WCF.

  • Vous devrez peut-être spécifier des propriétés WCF supplémentaires. Vous pouvez taper WCF dans l’Éditeur d’expressions, et la fonctionnalité IntelliSense doit répertorier toutes les propriétés de contexte disponibles. Pour plus d’informations sur les propriétés de contexte WCF, consultez Schéma et propriétés des propriétés des adaptateurs WCF.

    Les exemples précédents montrent comment configurer WCF. Action avec une seule action. Pour les scénarios de mappage à plusieurs actions, l'adaptateur WCF ne prend pas en charge l'utilisation du mappage à plusieurs actions avec les ports d'envoi dynamiques. Vous pouvez simplement définir l’action réelle dans WCF. Propriété de contexte d’action comme indiqué ci-dessus.

Voir aussi

Spécification des actions SOAP pour les adaptateurs d’envoi WCF
Utilisation d'expressions pour attribuer des valeurs à des ports dynamiques
Liaisons de port