Compartir a través de


Cómo configurar una aplicación de Windows Communication Foundation para llevar a cabo una intercepción

Debe instalar el software interceptor de BAM y configurar la aplicación para que use el servicio de interceptor de Windows Communication Foundation (WCF) de BAM para poder empezar a recopilar datos de actividad de BAM. Se supone que ha instalado correctamente BizTalk Server y sus dependencias y ha creado al menos un grupo de BizTalk.

Instalar el software de eventos BAM

Para poder configurar la aplicación WCF para que use el interceptor de BAM para WCF, debe instalar el software de BAM-Eventing mediante el programa de instalación de BizTalk Server. Para obtener más información sobre cómo instalar el software BAM-Eventing y registrar los contadores de rendimiento, consulte Instalación del software BAM-Eventing.

Configurar una aplicación de WCF para llevar a cabo un seguimiento

Se deben completar cuatro tareas antes de que la aplicación WCF pueda empezar a escribir información de eventos de BAM:

  • Se debe crear un modelo de observación mediante BizTalk Server herramientas de BAM y, a continuación, implementarse mediante la herramienta de línea de comandos de BAM Manager (bm.exe).

  • Debe crearse e implementarse un archivo de configuración de interceptor mediante la herramienta de línea de comandos del administrador de BAM (bm.exe).

  • El usuario que ejecuta la aplicación host debe ser miembro del escritor de eventos de actividad de BAM (bam_<activity>_EventWriter) SQL Server roles para permitir que la aplicación lea la información de configuración del interceptor y escriba en las actividades de BAM.

  • Debe modificar el archivo App.config para el servidor y la aplicación cliente para cargar el servicio de seguimiento de BAM. Una vez modificado el archivo App.config, debe reiniciar la aplicación.

    Solo después de que estas tareas se hayan completado correctamente, los eventos comenzarán a aparecer en la base de datos de BAM de BizTalk Server.

Implementar modelos de observación

Debe haberse implementado un modelo de observación antes de implementar un archivo de configuración de interceptor o capturar actividades de BAM en la aplicación.

Para implementar un modelo de observación mediante bm.exe
  1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar para abrir el símbolo del sistema de Windows.

  2. Escriba cmd en el campo Abrir y, a continuación, haga clic en Aceptar.

  3. Utilice el comando de cambio de directorio para mover el directorio que contiene el modelo de observación que se va a implementar. Por ejemplo, cd c:\businessprocess\Orders.

  4. Implemente un modelo de observación mediante bm.exe:

    \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>Tracking\bm.exe deploy-all -Definitionfile:<definitionfile.xml>

    Asegúrese de reemplazar <definitionfile.xml> por el nombre del archivo del modelo de observación que desea implementar. Para obtener más opciones, consulte Comandos de administración del interceptor.

    Nota

    En un sistema que admita el Control de cuentas de usuario (UAC), es posible que deba ejecutar la herramienta con privilegios administrativos.

  5. Escriba Exit y presione ENTRAR para cerrar el símbolo del sistema.

Implementar un archivo de configuración de interceptor

Debe implementar un archivo de configuración de interceptor antes de que la aplicación pueda capturar actividades de BAM.

Para implementar un archivo de configuración de interceptor mediante bm.exe
  1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar para abrir el símbolo del sistema de Windows.

  2. Escriba cmd en el campo Abrir y, a continuación, haga clic en Aceptar.

  3. Utilice el comando de cambio de directorio para mover el directorio que contiene el archivo de configuración de interceptor que se va a implementar. Por ejemplo, cd c:\businessprocess\Orders.

  4. Implementar un archivo de configuración de interceptor mediante bm.exe:

    \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>Tracking\bm.exe deploy-interceptor -Filename:<icfile.xml>

    Asegúrese de reemplazar <icfile.xml> por el nombre del archivo de configuración del interceptor que desea implementar.

    Nota

    Puede usar la marca -Force:True para invalidar los orígenes de eventos existentes con los mismos nombres que los del archivo de configuración del interceptor. Si lo hace, asegúrese de realizar una copia de seguridad de la configuración existente mediante el comando get-interceptor . Con la marca -Force:True puede eliminar cualquier configuración de interceptor que haga referencia a los orígenes de eventos que se están anulando.

    Nota

    En un sistema que admita el Control de cuentas de usuario (UAC), es posible que deba ejecutar la herramienta con privilegios administrativos.

  5. Escriba Exit y presione ENTRAR para cerrar el símbolo del sistema.

    Si ya ha implementado la aplicación WCF, la nueva configuración no se cargará hasta el siguiente intervalo de sondeo. Sin embargo, si configura la aplicación y la reinicia, la configuración se selecciona de inmediato.

Adición de usuarios al rol de actividad de BAM adecuado

El marco de trabajo de interceptor de BAM usa roles de SQL Server por actividad para controlar el acceso a las actividades y a la información de configuración. Debe agregar la cuenta del usuario que ejecuta la aplicación WCF a los roles de actividad de BAM correspondientes en la base de datos BAMPrimaryImport.

Configurar la aplicación de Windows Communication Foundation para cargar el Servicio de seguimiento de BAM

Configure la aplicación para cargar el Servicio de seguimiento de BAM mediante la agregación de unas cuantas líneas al archivo App.config para la aplicación servidor o cliente.

Para habilitar el seguimiento de BAM en el servidor WCF o la aplicación cliente, deberá modificar el archivo de configuración de App.config para incluir un comportamiento y una extensión de comportamiento de punto de conexión adicionales y agregar un atributo de configuración de comportamiento. Los formatos del servicio y las plantillas de clientes son similares.

Al configurar la aplicación WCF, tenga en cuenta lo siguiente. Si hay más de un comportamiento de extremo de BAM definido en el archivo App.config para la misma aplicación, es decir, el mismo cliente o servicio, BAM llevará a cabo las siguientes acciones:

  • Si las cadenas de conexión son diferentes, BAM producirá una excepción.

  • Si sólo difiere el intervalo de sondeo, BAM seleccionará uno y lo moverá. Durante el tiempo de diseño, no es posible determinar cuál se va a seleccionar.

Nota

Si las cadenas de conexión son iguales, lo que significa que hacen referencia al mismo equipo, el procesamiento de BAM tendrá lugar con normalidad.

La plantilla de App.config de ejemplo siguiente está configurada para una aplicación de servidor WCF. Define un punto de conexión que usa un comportamiento personalizado "bamEndpointBehavior" configurado para usar el interceptor de 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>  

Antes de usar su propio archivo App.config, tendrá que realizar algunos cambios pequeños en esta plantilla.

Para usar esta plantilla en su archivo App.config del Servicio WCF
  1. Abra el archivo App.config relacionado con la aplicación. Puede utilizar Notepad.exe u otro editor de texto para esta tarea.

  2. Agregue la extensión de comportamiento BamEndpointBehavior de WCF al extensions elemento mediante el siguiente XML:

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

    Nota

    La extensión de comportamiento se denomina "BamEndpointBehaviorExtension", y puede modificarse según sea necesario para que se adapte a su entorno.

  3. Agregue un nuevo comportamiento de punto de conexión que use la nueva extensión de comportamiento al behaviors elemento mediante el siguiente CÓDIGO XML. La extensión de comportamiento proporciona una cadena de conexión y un intervalo de sondeo en segundos.

    <endpointBehaviors>  
      <behavior name="bamEndpointBehavior">  
        <BamEndpointBehaviorExtension ConnectionString="Initial Catalog=BamPrimaryImport;Data Source=MyMachine;Integrated Security=SSPI;" InterceptorConfigurationPollingInterval="1500" />  
      </behavior>  
    </endpointBehaviors>  
    

    Sustituya el origen de datos por el nombre del equipo que aloje la base de datos BamPrimaryImport en su entorno. Cambie el intervalo de sondeo para que se adapte a sus requisitos; un número mayor significa que el interceptor de WCF tardará más tiempo en detectar los cambios de configuración. Si ha cambiado el nombre de la extensión de comportamiento, úselo para sustituir "BamEndpointBehaviorExtension".

    Nota

    El nombre del comportamiento es "bamEndpointBehavior", y puede modificarse para que se adapte a su entorno.

    Nota

    Evite usar una combinación de nombre de usuario y contraseña de texto no cifrado al especificar ConnectionString. Si lo usa, puede poner en peligro su servidor de base de datos.

    Nota

    Debe especificar un PollingIntervalSec valor mayor o igual que 5 (segundos). Si especifica un valor inferior o omite el PollingIntervalSec elemento, se generará un error y no se configurará la interceptación.

  4. Agregue el behaviorConfiguration atributo al punto de conexión que va a realizar el seguimiento y proporcione el nombre del nuevo comportamiento:

    <endpoint address="http://localhost:8081/CreditCardService" contract="Service.ICreditCardAuthorization" name="CreditCardEndPoint" binding ="wsDualHttpBinding" bindingConfiguration="wsDualHttpBinding_ICreditCardAuthorization" behaviorConfiguration="bamEndpointBehavior"/>  
    

    Nota

    Si ha usado un nombre de comportamiento diferente, proporciónelo en su lugar.

    Puede aplicar la configuración de comportamiento a varios extremos.

  5. Guarde el archivo App.config modificado y reinicie la aplicación.