Partager via


Configuration d'un emplacement de réception WCF-NetTcp

Vous pouvez configurer un emplacement de réception WCF-NetTcp 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-NetTcp 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-NetTcp utilise les valeurs par défaut pour la configuration de l'emplacement de réception 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 l'emplacement de réception WCF-NetTcp.

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.
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 de réception de requête-réponse, cette valeur indique une période pour la réalisation de l'intégralité de l'interaction, même si le client 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 envoyé à la base de données MessageBox à l'aide de la transaction transmise depuis des clients. Si cette propriété a la valeur True, les clients doivent envoyer des messages à l’aide du protocole de transaction spécifié dans la propriété TransactionProtocol . Si les clients envoient des messages hors de l'étendue transactionnelle, cet emplacement de réception renvoie une exception aux clients et aucun message n'est interrompu.

Cette option n'est disponible que pour les emplacements de réception unidirectionnels. Si les clients envoient des messages dans un contexte transactionnel d'emplacements de réception avec requête-réponse, une exception est renvoyée aux clients et aucun message n'est interrompu.

Valeur par défaut : False
TransactionProtocol Énumération

- OleTransaction
- WS-AtomicTransaction
Indiquez le protocole de transaction à utiliser avec cet emplacement de réception.

Valeur par défaut : OleTransaction
LeaseTimeout System.TimeSpan Spécifiez la durée de vie maximale d'une connexion active placée dans le pool. Une fois le temps spécifié écoulé, la connexion est fermée une fois la demande en cours traitée.

L’adaptateur WCF-NetTcp utilise la classe NetTcpBinding pour communiquer avec un point de terminaison. Lorsque vous utilisez NetTcpBinding dans des scénarios d’équilibrage de charge, envisagez de réduire le délai d’expiration du bail par défaut. Pour plus d’informations sur l’équilibrage de charge lors de l’utilisation de NetTcpBinding, consultez la rubrique appropriée dans Voir aussi.

Valeur par défaut : 00 :05 :00
MaxConcurrentCalls Integer Spécifier le nombre d'appels simultanés par instance de service unique. Les appels excédentaires sont mis en file d'attente. La plage de cette propriété s'étend de 1 à Int32.MaxValue.

Valeur par défaut : 200
Securitymode Énumération

- Aucun
- Message
- Transport
- TransportWithMessageCredential

Pour plus d’informations sur les noms de 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, Recevoir, 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 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-NetTcp, onglet Réception, 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 client.

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éfinir 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 des 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 Réception, 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 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, Recevoir, 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
ServiceCertificate String Spécifier l'empreinte du certificat X.509 pour cet emplacement de réception permettant au client d'authentifier le service. Le certificat à utiliser pour cette propriété doit être installé dans mon magasin à l’emplacement Utilisateur actuel . Note: Vous devez installer le certificat de service dans l’emplacement Utilisateur actuel du compte d’utilisateur pour le gestionnaire de réception hébergeant cet emplacement de réception.

La valeur par défaut est une chaîne vide.
UseSSO Boolean Indiquez s'il faut utiliser l'authentification unique de l'entreprise pour extraire les informations d'identification du client afin d'émettre un ticket d'authentification unique. Pour plus d’informations sur les configurations de sécurité prenant en charge l’authentification unique, consultez la section « Enterprise Single Sign-On Supportability for the WCF-NetTcp Receive Adapter » dans la boîte de dialogue Propriétés de transport WCF-NetTcp, Recevoir, 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.
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.
- 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.

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 de réception WCF-NetTcp utilise pour décoder le nœud identifié par l’expression de chemin du corps spécifiée dans InboundBodyPathExpression. Cette propriété est obligatoire si la propriété InboundBodyLocation a la valeur 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 SOAP Body 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 SOAP Body 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 obligatoire si la propriété OutboundBodyLocation a la valeur 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.
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

Configurer un emplacement de réception WCF-NetTcp avec la console d’administration BizTalk

Vous pouvez définir des variables d'emplacement de réception pour l'adaptateur WCF-NetTcp 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-NetTcp

  1. Dans la console Administration de BizTalk Server, développez successivement Administration de BizTalk Server 2009, Groupe BizTalk, Applications, puis l'application dans laquelle créer un emplacement de réception.

  2. 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.

  3. 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.

  4. 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-NetTcp dans la liste déroulante, puis cliquez sur Configurer.

  5. 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 et l’identité du service pour l’emplacement de réception 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, 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.

  6. 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, 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.

  7. 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é de l’emplacement de réception WCF-NetTcp. Pour plus d’informations sur l’onglet Sécurité 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, Recevoir, 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.

  8. 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 Réception, Messages 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-NetTcp par programmation

Vous pouvez utiliser le format suivant pour définir les propriétés :

<CustomProps>
  <InboundBodyPathExpression vt="8" />
  <InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
  <UseSSO vt="11">0</UseSSO>
  <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">Message</SecurityMode>
  <TransportClientCredentialType vt="8">Windows</TransportClientCredentialType>
  <MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
  <CloseTimeout vt="8">00:01:00</CloseTimeout>
  <SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
  <EnableTransaction vt="11">0</EnableTransaction>
  <InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
  <IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
  <MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>
  <ServiceCertificate vt="8" />
  <OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>

Le fragment de code suivant illustre la création d'un emplacement de réception WCF-NetTcp :

// Use BizTalk Explorer object model to create new WCF-NetTcp 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>
  <InboundBodyLocation vt=""8"">UseBodyElement</InboundBodyLocation>
  <UseSSO vt=""11"">0</UseSSO>
  <Identity vt=""8"">
    <identity>
    <userPrincipalName value=""username@contoso.com"" />
    </identity>
  </Identity>
</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-NetTcp
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
    if("WCF-NetTcp" == explorer.ReceiveHandlers[i].TransportType.Name)
        break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.tcp://mycomputer/samplepath";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-NetTcp"];
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 l’équilibrage de charge des adaptateurs WCFConfiguration de l’adaptateur WCF-NetTcp