Configurer un port d’envoi WCF-NetTcp
Vous pouvez configurer un port d'envoi WCF-NetTcp 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-NetTcp 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-NetTcp, 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-NetTcp.
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 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. L’adaptateur WCF-NetTcp utilise la classe NetTcpBinding en mode de transfert mis en mémoire tampon pour communiquer avec un point de terminaison. Pour le mode de transport mis en mémoire tampon, la propriété NetTcpBinding.MaxBufferSize est toujours égale à la valeur de cette propriété. Valeur par défaut : 65536 |
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 de transaction spécifié dans la propriété TransactionProtocol . Valeur par défaut : False |
TransactionProtocol | Énumération - OleTransaction - WS-AtomicTransaction |
Spécifiez le protocole de transaction à utiliser avec cette liaison. Valeur par défaut : OleTransaction |
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-NetTcp, Envoi, 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 |
TransportClientCredentialType | Énumération - Aucun - Windows - Certificat Pour plus d’informations sur les noms des 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-NetTcp, 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 port d'envoi. Valeur par défaut : Windows |
TransportProtectionLevel | Énumération - Aucun : aucune protection. - Signe : les messages sont signés. - EncryptAndSign : les messages sont chiffrés et signés. |
Définissez la sécurité au niveau du transport TCP. La signature des messages limite le risque qu'un tiers puisse falsifier le message pendant son transfert. Le chiffrement garantit la confidentialité des données pendant le transport. Valeur par défaut : EncryptAndSign |
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-NetTcp, 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 : 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-NetTcp, 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 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 |
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. |
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. |
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 SOAP Body 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 obligatoire si la propriété OutboundBodyLocation a la valeur 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 la partie corps du message BizTalk. Si l’élément Body a plusieurs éléments enfants, seul le premier élément devient la partie 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 du corps dans la propriété InboundBodyPathExpression pour créer la partie corps du message BizTalk. L’expression de chemin du 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 SOAP Body 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é 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 SOAP Body 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 a la valeur 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 - XML - 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-NetTcp utilise pour décoder le nœud identifié par le XPath 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 |
Configuration du port d'envoi WCF-NetTcp à l'aide de la console Administration de BizTalk
Vous pouvez définir les variables de l'adaptateur du port d'envoi WCF-NetTcp 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-NetTcp sont utilisées, comme indiqué dans le tableau précédent.
Configurer des variables pour un port d’envoi WCF-NetTcp
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-NetTcp 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-NetTcp , 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-NetTcp. Pour plus d’informations sur l’onglet Général de la boîte de dialogue Propriétés de transport WCF-NetTcp , consultez la boîte de dialogue Propriétés de transport WCF-NetTcp, Onglet Envoyer, 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-NetTcp , 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-NetTcp , consultez la boîte de dialogue Propriétés de transport WCF-NetTcp, 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-NetTcp , sous l’onglet Sécurité , définissez les fonctionnalités de sécurité du port d’envoi WCF-NetTcp. Pour plus d’informations sur l’onglet Sécurité dans la boîte de dialogue Propriétés de transport WCF-NetTcp , consultez la boîte de dialogue Propriétés de transport WCF-NetTcp, 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 du transport WCF-NetTcp , 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-NetTcp , consultez la boîte de dialogue Propriétés de transport WCF-NetTcp, onglet Envoyer, messages dans les informations de référence sur les conseils d’interface utilisateur et les informations de référence sur l’espace de noms d’API des développeurs.
Configurer un port d’envoi WCF-NetTcp par programmation
Vous pouvez utiliser le format suivant pour définir les propriétés :
<CustomProps>
<UseSSO vt="11">0</UseSSO>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<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>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Transport</SecurityMode>
<TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
<ClientCertificate vt="8" />
<TransactionProtocol vt="8">OleTransactions</TransactionProtocol>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<TransportProtectionLevel vt="8">EncryptAndSign</TransportProtectionLevel>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<EnableTransaction vt="11">0</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
Le fragment de code suivant illustre la création d'un port d'envoi WCF-NetTcp :
// Use BizTalk Explorer object model to create new WCF-NetTcp 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>
<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-NetTcp"];
sendPort.PrimaryTransport.Address = "net.tcp://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 WCFSpécifiant le corps du message pour les adaptateurs WCFInstallant des certificats pour les adaptateurs WCFConfiguration de l’adaptateur WCF-NetTcpConfiguration des ports d’envoi dynamiques à l’aide des propriétés de contexte des adaptateurs WCF