Configurer un port d’envoi WCF-WSHttp
Vous pouvez configurer un port d'envoi WCF-WSHttp 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-WSHttp 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-WSHttp, 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-WSHttp.
Nom de la propriété | Type | Description |
---|---|---|
Identité | Objet blob XML, par exemple :<identity> <userPrincipalName value="username@contoso.com"> </identity> |
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 HTTP 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/Op1 , l’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> <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é 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 |
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 |
MessageEncoding | Énumération - Texte : utilisez un encodeur de message texte. - Mtom : utilisez un encodeur MTOM (Message Transmission Organization Mechanism 1.0). |
Indiquer l’encodeur utilisé pour coder le message SOAP. Valeur par défaut : Texte |
TextEncoding | Énumération - unicodeFFF : encodage Unicode BigEndian. - utf-16 : encodage 16 bits. - utf-8 : encodage 8 bits. |
Spécifiez l’encodage du jeu de caractères à utiliser pour émettre des messages sur la liaison lorsque la propriété MessageEncoding a la valeur Text. Valeur par défaut : utf-8 |
EnableTransaction | Boolean | Spécifiez si un message est transmis au service de destination et supprimé de la base de données MessageBox dans un contexte transactionnel à l’aide du protocole WS-AtomicTransaction . Valeur par défaut : False |
Securitymode | Énumération - Aucun - Message - Transport - TransportWithMessageCredential 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-WSHttp, 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 : None |
TransportClientCredentialType | Énumération - Aucun - Base - Windows - Certificat - Digérer - Ntlm Pour plus d’informations sur les noms de membres de la propriété TransportClientCredentialType , consultez la propriété Type d’informations d’identification du client de transport dans la boîte de dialogue Propriétés de transport WCF-WSHttp, 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 port d'envoi. Valeur par défaut : None |
MessageClientCredentialType | Énumération - Aucun - Windows - Nom d'utilisateur - Certificat Pour plus d’informations sur les noms de 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-WSHttp, onglet Envoyer, 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é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 : UserName |
AlgorithmSuite | Énumération Pour plus d’informations sur les noms de 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-WSHttp, 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 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 |
NegotiateServiceCredential | Boolean Pour plus d’informations sur les noms des membres de la propriété NegotiateServiceCredential , consultez la propriété Négocier les informations d’identification du service dans la boîte de dialogue Propriétés de transport WCF-WSHttp, 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 si les informations d'identification du service sont générées au niveau de ce port d'envoi hors bande ou sont obtenues à partir du service sur ce port d'envoi via un processus de négociation. Ce type de négociation précède l'échange habituel de messages. Valeur par défaut : False |
EnableSecurityContext | Boolean | Spécifiez si un jeton de contexte de sécurité est établi via un échange WS-SecureConversation entre ce port d’envoi et le service. Si cette propriété a la valeur True , le service de destination doit prendre en charge WS-SecureConversation. Valeur par défaut : True |
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. |
ProxyToUse | Énumération - Aucun : n’utilisez pas de serveur proxy pour ce port d’envoi. - Par défaut : utilisez les paramètres de proxy dans le gestionnaire d’envoi hébergeant ce port d’envoi. - UserSpecified : utilisez le serveur proxy spécifié dans la propriété ProxyAddress . |
Spécifiez le serveur proxy à utiliser pour le trafic HTTP sortant. Valeur par défaut : None |
ProxyAddress | String | Indiquez l’adresse du serveur proxy. Utilisez le schéma https ou http en fonction de la configuration de sécurité. Cette adresse peut être suivie d’un signe deux-points et du numéro de port, par exemple . http://127.0.0.1:8080 La valeur par défaut est une chaîne vide. |
ProxyUserName | String | Indiquez le nom d'utilisateur à utiliser pour le proxy. L’adaptateur WCF-WSHttp tire parti de WSHttpBinding en mode de transfert mis en mémoire tampon pour communiquer avec un point de terminaison. Les informations d’identification de proxy de WSHttpBinding s’appliquent uniquement lorsque le mode de sécurité est Transport ou Aucun. Si vous définissez la propriété SecurityMode sur Message ou TransportWithMessageCredential, l’adaptateur WCF-WSHttp n’utilise pas les informations d’identification spécifiées dans les propriétés ProxyUserName et ProxyPassword pour l’authentification auprès du proxy. Note: L’adaptateur d’envoi WCF-WSHttp utilise l’authentification de base pour le proxy. La valeur par défaut est une chaîne vide. |
ProxyPassword | String | Indiquez le mot de passe à utiliser pour le proxy. 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. |
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. 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. |
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. Cette propriété est valide uniquement pour des ports de sollicitation-réponse. 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 XML externe du nœud sélectionné par l’expression de chemin du corps dans InboundBodyPathExpression. |
Spécifiez le type d’encodage que l’adaptateur d’envoi WCF-WSHttp 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 |
PropagateFaultMessage | 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). |
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 |
Configurer un port d’envoi WCF-WSHttp avec la console d’administration BizTalk
Vous pouvez définir les variables de l'adaptateur du port d'envoi WCF-WSHttp 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-WSHttp sont utilisées, comme indiqué dans le tableau précédent.
Configurer des variables pour un port d’envoi WCF-WSHttp
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-WSHttp pour l’option Type dans la section Transport de l’onglet Général .
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 du transport WCF-WSHttp , sous l’onglet Général , configurez l’adresse du point de terminaison, l’identité du service et l’en-tête HTTP SOAPAction pour le port d’envoi WCF-WSHttp. Pour plus d’informations sur l’onglet Général de la boîte de dialogue Propriétés de transport WCF-WSHttp , consultez la boîte de dialogue Propriétés de transport WCF-WSHttp, 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 WCF-WSHttp , sous l’onglet Liaison , configurez les propriétés de délai d’attente, d’encodage et de transaction. Pour plus d’informations sur l’onglet Liaison dans la boîte de dialogue Propriétés de transport WCF-WSHttp , consultez la boîte de dialogue Propriétés de transport WCF-WSHttp, Onglet Envoyer, 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-WSHttp , sous l’onglet Sécurité , définissez les fonctionnalités de sécurité du port d’envoi WCF-WSHttp. Pour plus d’informations sur l’onglet Sécurité de la boîte de dialogue Propriétés de transport WCF-WSHttp , consultez la boîte de dialogue Propriétés de transport WCF-WSHttp, 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.
Dans la boîte de dialogue Propriétés de transport WCF-WSHttp , sous l’onglet Proxy , configurez le paramètre de proxy pour le port d’envoi WCF-WSHttp. Pour plus d’informations sur l’onglet Proxy dans la boîte de dialogue Propriétés de transport WCF-WSHttp , consultez la boîte de dialogue Propriétés de transport WCF-WSHttp, Onglet Envoyer, Proxy 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-WSHttp , 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-WSHttp , consultez la boîte de dialogue Propriétés de transport WCF-WSHttp, 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-WSHttp par programmation
Vous pouvez utiliser le format suivant pour définir les propriétés :
<CustomProps>
<ServiceCertificate vt="8" />
<UseSSO vt="11">0</UseSSO>
<InboundBodyPathExpression vt="8" />
<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>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<Identity vt="8" />
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Message</SecurityMode>
<TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
<TextEncoding vt="8">utf-8</TextEncoding>
<NegotiateServiceCredential vt="11">-1</NegotiateServiceCredential>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<ClientCertificate vt="8" />
<ProxyUserName vt="8" />
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<ProxyToUse vt="8">Default</ProxyToUse>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<EstablishSecurityContext vt="11">-1</EstablishSecurityContext>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
<ProxyAddress vt="8" />
<MessageEncoding vt="8">Text</MessageEncoding>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Le fragment de code suivant illustre la création d'un port d'envoi WCF-WSHttp :
// Use BizTalk Explorer object model to create new WCF-WSHttp 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>
<MessageEncoding vt=""8"">Text</MessageEncoding>
<TextEncoding vt=""8"">utf-8</TextEncoding>
<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-WSHttp"];
sendPort.PrimaryTransport.Address = "http://mycomputer/samplepath";
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 WCFConfiguration de l’adaptateur WCF-WSHttpSpécification du corps du message pour les adaptateurs WCFInstallation de certificats pour les adaptateurs WCFConfiguration des ports d’envoi dynamique à l’aide des propriétés de contexte des adaptateurs WCF