Configuration d'une application Windows Communication Foundation pour l'interception
Vous devez installer le logiciel d’intercepteur BAM et configurer votre application pour utiliser le service d’intercepteur BAM Windows Communication Foundation (WCF) avant de pouvoir commencer à collecter des données d’activité BAM. Il est supposé que vous avez correctement installé BizTalk Server et ses dépendances et que vous avez créé au moins un groupe BizTalk.
Installation du logiciel BAM-Événements
Avant de pouvoir configurer votre application WCF pour utiliser l’intercepteur BAM pour WCF, vous devez installer le logiciel BAM-Eventing à l’aide du programme d’installation BizTalk Server. Pour plus d’informations sur l’installation du logiciel BAM-Eventing et l’inscription des compteurs de performances, consultez Installation du logiciel BAM-Eventing.
Configuration d'une application WCF pour le suivi
Quatre tâches doivent être effectuées avant que votre application WCF puisse commencer à écrire des informations d’événement BAM :
Un modèle d’observation doit être créé à l’aide de BizTalk Server outils BAM, puis déployé à l’aide de l’outil en ligne de commande BAM Manager (bm.exe).
Vous devez créer un fichier de configuration d'intercepteur et le déployer à l'aide de l'outil de ligne de commande du gestionnaire BAM (bm.exe).
L’utilisateur exécutant l’application hôte doit être membre de l’enregistreur d’événements d’activité BAM approprié (bam_<activité>_EventWriter) SQL Server rôles SQL Server pour permettre à l’application de lire les informations de configuration de l’intercepteur et d’écrire dans les activités BAM.
Vous devez modifier le fichier App.config pour le serveur et l'application cliente pour charger le service de suivi BAM. Une fois le fichier App.config modifié, vous devez redémarrer l'application.
Ce n’est qu’une fois ces tâches terminées que les événements commencent à apparaître dans la base de données BAM BizTalk Server.
Déploiement d'un modèle d'observation
Vous devez avoir préalablement déployé un modèle d'observation avant de déployer un fichier de configuration d'intercepteur ou de capturer des activités BAM dans votre application.
Pour déployer un modèle d'observation à l'aide de bm.exe
Cliquez sur Démarrer , puis sur Exécuter pour ouvrir l’invite de commandes Windows.
Tapez cmd dans le champ Ouvrir , puis cliquez sur OK.
Utilisez la commande cd (changer de répertoire) pour accéder au répertoire contenant le modèle d'observation à déployer. Par exemple, cd c :\businessprocess\Orders.
Déployez le modèle d’observation à l’aide de bm.exe :
\Program Files (x86)\Microsoft BizTalk Server <VERSION>Tracking\bm.exe deploy-all -Definitionfile :<definitionfile.xml>
Veillez à remplacer <definitionfile.xml> par le nom du fichier de modèle d’observation que vous souhaitez déployer. Pour plus d’options, consultez Commandes de gestion des intercepteurs.
Notes
Sur les systèmes qui prennent en charge le contrôle de compte d'utilisateur, vous devrez peut-être exécuter l'outil avec des privilèges d'administrateur.
Tapez Exit , puis appuyez sur ENTRÉE pour fermer l’invite de commandes.
Déploiement d'un fichier de configuration d'intercepteur
Vous devez déployer un fichier de configuration d'intercepteur pour que votre application puisse capturer des activités BAM.
Pour déployer un fichier de configuration d'intercepteur à l'aide de bm.exe
Cliquez sur Démarrer , puis sur Exécuter pour ouvrir l’invite de commandes Windows.
Tapez cmd dans le champ Ouvrir , puis cliquez sur OK.
Utilisez la commande cd (changer de répertoire) pour accéder au répertoire contenant le fichier de configuration d'intercepteur à déployer. Par exemple, cd c :\businessprocess\Orders.
Déployez le fichier de configuration d'intercepteur à l'aide de bm.exe :
\Program Files (x86)\Microsoft BizTalk Server <VERSION>Tracking\bm.exe deploy-interceptor -Filename :<icfile.xml>
Veillez à remplacer <icfile.xml> par le nom du fichier de configuration de l’intercepteur que vous souhaitez déployer.
Notes
Vous pouvez utiliser l’indicateur -Force :True pour remplacer les sources d’événements existantes portant les mêmes noms que ceux de votre fichier de configuration d’intercepteur. Dans ce cas, veillez à sauvegarder la configuration existante à l’aide de la commande get-interceptor . L'utilisation de l'indicateur -Force:True pourrait supprimer des configurations d'intercepteur qui font référence aux sources d'événements remplacées.
Notes
Sur les systèmes qui prennent en charge le contrôle de compte d'utilisateur, vous devrez peut-être exécuter l'outil avec des privilèges d'administrateur.
Tapez Exit , puis appuyez sur ENTRÉE pour fermer l’invite de commandes.
Si vous avez déjà déployé votre application WCF, la nouvelle configuration ne sera pas chargée avant l’intervalle d’interrogation suivant. Toutefois, si vous configurez et redémarrez votre application, la configuration est immédiatement récupérée.
Ajout de l'utilisateur au rôle approprié de l'activité BAM
L'infrastructure de l'intercepteur BAM utilise les rôles SQL Server par activité pour contrôler l'accès aux activités et aux informations de configuration. Vous devez ajouter le compte d'utilisateur exécutant votre application WCF au(x) rôle(s) approprié(s) de l'activité BAM dans la base de données BAMPrimaryImport.
Configuration de l'application Windows Communication Foundation pour charger le service de suivi BAM
Pour configurer l'application de manière qu'elle charge le service de suivi BAM, ajoutez quelques lignes au fichier App.config du serveur ou de l'application cliente.
Pour activer le suivi BAM dans votre serveur WCF ou votre application cliente, vous devez modifier le fichier de configuration App.config afin d’inclure une extension de comportement et de comportement de point de terminaison supplémentaire et ajouter un attribut de configuration de comportement. Les formats du service et des modèles client sont similaires.
Lors de la configuration de l’application WCF, notez ce qui suit. Si plusieurs comportements de point de terminaison BAM sont définis dans le fichier App.config pour la même application (même client ou service), l'analyse BAM effectue les actions suivantes.
Si les chaînes de connexion diffèrent, l'analyse BAM génère une exception.
Si seul l'intervalle d'interrogation diffère, l'analyse BAM en sélectionne un et continue. Au moment de la conception, il n'est pas possible de déterminer celui qui sera sélectionné.
Notes
Si les chaînes de connexion sont identiques, c'est-à-dire qu'elles font référence au même ordinateur, le traitement BAM est normal.
L’exemple de modèle App.config suivant est configuré pour une application serveur WCF. Il définit un point de terminaison qui utilise un comportement personnalisé « bamEndpointBehavior » configuré pour utiliser l’intercepteur WCF.
<system.serviceModel>
<services>
<service name="Service.CreditCardAuthorization">
<!-- The endpoint will use the "bamEndpointBehavior" -->
<endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>
</service>
</services>
<bindings>
<wsDualHttpBinding>
<binding name="wsDualHttpBinding_ICreditCardAuthorization" transactionFlow="true" />
</wsDualHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<!-- Define a new behavior named "bamEndpointBehavior" -->
<behavior name="bamEndpointBehavior">
<BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" />
</behavior>
</endpointBehaviors>
</behaviors>
<extensions>
<behaviorExtensions>
<!-- Define a new enpoint behavior extension using WCF interceptor -->
<add name="BamEndpointBehaviorExtension" type="Microsoft.BizTalk.Bam.Interceptors.Wcf.BamEndpointBehavior, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</behaviorExtensions>
</extensions>
</system.serviceModel>
Vous devez légèrement modifier ce modèle avant de l'utiliser dans votre propre fichier App.config.
Pour utiliser ce modèle dans votre fichier App.config du service WCF
Ouvrez le fichier App.config associé à votre application. Vous pouvez utiliser Notepad.exe ou un autre éditeur de texte pour cette tâche.
Ajoutez l’extension de comportement WCF BamEndpointBehavior à l’élément à l’aide
extensions
du code XML suivant :<behaviorExtensions> <add name="BamEndpointBehaviorExtension" type="Microsoft.BizTalk.Bam.Interceptors.Wcf.BamEndpointBehavior, Microsoft.BizTalk.Bam.Interceptors, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </behaviorExtensions>
Notes
Vous pouvez adapter le nom de l'extension de comportement, « BamEndpointBehaviorExtension », à votre environnement.
Ajoutez un nouveau comportement de point de terminaison qui utilise la nouvelle extension de comportement à l’élément à l’aide
behaviors
du code XML suivant. L'extension de comportement fournit une chaîne de connexion et un intervalle d'interrogation en secondes.<endpointBehaviors> <behavior name="bamEndpointBehavior"> <BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" /> </behavior> </endpointBehaviors>
Remplacez la source de données par le nom de l'ordinateur hébergeant la base de données BamPrimaryImport dans votre environnement. Modifiez l’intervalle d’interrogation en fonction de vos besoins ; un nombre plus élevé signifie que l’intercepteur WCF prendra plus de temps pour détecter les modifications de configuration. Si vous avez modifié le nom de l'extension de comportement, utilisez-le pour remplacer « BamEndpointBehaviorExtension ».
Notes
Vous pouvez adapter le nom du comportement, « bamEndpointBehavior », à votre environnement.
Notes
Évitez d’utiliser une combinaison de nom d’utilisateur/mot de passe en clair lors de la spécification .
ConnectionString
Cela pourrait compromettre votre serveur de bases de données.Notes
Vous devez spécifier une
PollingIntervalSec
valeur supérieure ou égale à 5 (secondes). Si vous spécifiez une valeur inférieure ou omettez l’élémentPollingIntervalSec
, une erreur est générée et l’interception n’est pas configurée.Ajoutez l’attribut
behaviorConfiguration
au point de terminaison que vous suivez et indiquez le nom du nouveau comportement :<endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>
Notes
Si vous avez utilisé un autre nom de comportement, indiquez-le à la place.
Vous pouvez appliquer la configuration du comportement à plusieurs points de terminaison.
Enregistrez le fichier App.config modifié et redémarrez votre application.