Compartir a través de


Tutorial: Procesamiento de mensajes personalizados mediante el adaptador de WCF-NetTcp

En este tutorial, un cliente de Windows Communication Foundation (WCF) envía un mensaje WCF que contiene datos de imágenes JPEG binarias incrustadas a una ubicación de recepción de BizTalk mediante el adaptador de WCF-NetTcp. La imagen JPEG codificada binaria se extrae mediante una instrucción XPath (con codificación de nodo Base64) a través de la configuración del cuerpo del mensaje entrante en la configuración del adaptador. El procesamiento de XPath difiere del método predeterminado que BizTalk Server usa para controlar los mensajes entrantes. En el método predeterminado, el adaptador obtiene todo el contenido del elemento Body del mensaje WCF y, a continuación, lo envía a la base de datos de Cuadro de mensajes de BizTalk. El procesamiento de mensajes XPath extrae partes específicas de un mensaje WCF entrante para crear un mensaje personalizado de BizTalk. En este procesamiento XPath de ejemplo, se busca un elemento XML denominado SendPicture en el mensaje WCF entrante (que está en formato XML). Después de encontrar ese elemento, XPath extrae su valor como un objeto codificado en Base64 y coloca el valor binario en un mensaje de BizTalk. El mensaje se publica en la base de datos de cuadro de mensajes y luego se pasa a un puerto de envío de archivos con la ayuda de una suscripción de filtro de puertos de envío. No se usa ninguna orquestación en este ejemplo, y todo el procesamiento se realiza mediante la mensajería de BizTalk con XPath.

Un adaptador WCF se usa para comunicarse con clientes de Windows Communication Foundation (WCF) y servicios remotos de WCF desde BizTalk Server. Permite que las orquestaciones y esquemas se publiquen como servicios WCF, y también proporciona la capacidad de una orquestación para consumir servicios WCF externos. El adaptador de WCF-NetTcp usa el enlace NetTcpBinding , lo que significa que el transporte TCP usa una codificación de mensajes binarios optimizada. El adaptador de WCF-NetTcp consta de un adaptador de envío y un adaptador de recepción. Proporciona acceso completo a características de confiabilidad, seguridad y transacciones de SOAP.

Cuando concluya el tutorial, comprenderá cómo se realizan las tareas siguientes:

  • Con la consola de administración de BizTalk Server, importe un archivo MSI para crear un puerto de envío, un puerto de recepción y una ubicación de recepción.

  • Mediante el uso de la consola de administración de BizTalk Server, configure una ubicación de recepción de WCF para ejecutar una instrucción XPath para extraer datos del elemento SendPicture del mensaje WCF.

Nota

El elemento hosttrusted especifica si el host asociado al controlador de recepción es de confianza. En el archivo bindings.xml, se establece en su valor predeterminado porque false en este ejemplo no nos importa el servicio de BizTalk Server Enterprise único Sign-On (SSO). El inicio de sesión único permite el paso de credenciales de usuario a través de BizTalk Server para integrar aplicaciones de terceros con BizTalk Server. Una false configuración impide que un mensaje de BizTalk pase por el servicio de BizTalk como parte del procesamiento del inicio de sesión único.

Requisitos previos

Para realizar los pasos de este ejemplo, asegúrese de que el entorno instala los siguientes requisitos previos;

  • Tanto el equipo que compila los ensamblados como ejecuta el proceso de implementación y el equipo que ejecuta el ejemplo requieren Microsoft Windows Server 2008 SP2, Microsoft .NET Framework 4.5 y Microsoft BizTalk Server.

  • El equipo que se usa para generar los ensamblados y ejecutar el proceso de implementación requiere Microsoft Visual Studio.

  • El equipo que ejecuta el ejemplo requiere los adaptadores WCF y las herramientas de administración de WCF. Estas son opciones para instalar durante la instalación de Microsoft BizTalk Server.

  • En los equipos que usa para realizar tareas administrativas, debe ejecutarse como una cuenta de usuario que sea miembro del grupo administradores de BizTalk Server para configurar los valores de la aplicación de BizTalk Server en la consola de administración de BizTalk Server. Esta cuenta de usuario también debe ser miembro del grupo de administradores local para la implementación de la aplicación, la administración de las instancias de host y otras tareas que puedan ser necesarias.

  • En cualquier equipo que requiera la funcionalidad WCF, complete el procedimiento de configuración único para los ejemplos de WCF en https://go.microsoft.com/fwlink/?LinkId=135510.

  • En el equipo que ejecuta el ejemplo e importa un archivo .msi en BizTalk Server, asegúrese de que el host no sea un host de confianza o se producirá un error en la importación.

  • Debe descargar el código de tutorial y extraerlo en el equipo. Este tutorial forma parte de todo el paquete tutorial del adaptador WCF. Puede descargar el archivo WCFAdapterWalkthroughs.exe desde el Centro para desarrolladores de BizTalk Server en https://go.microsoft.com/fwlink/?LinkId=194140.

Configuración de la aplicación WCFCustomMessageProcessing y los artefactos

  1. En la consola de administración de BizTalk Server, haga clic con el botón derecho en Aplicaciones, seleccione Importar y, a continuación, seleccione Archivo MSI. Vaya al archivo C:\WCFCustomMessageProcessing\WCFCustomMessageProcessing.msi y haga clic en Abrir. Esto crea los siguientes artefactos para esta aplicación:

    • Puerto de envío fileSP: la ubicación en el sistema de archivos local de C:\WCFCustomMessageProcessing\Out donde BizTalk Server envía los datos de imagen JPEG como salida final del procesamiento de muestra. Puede ver el filtro de puerto de envío de BTS. ReceivePortName = NetTcpRP configurado en el cuadro de diálogo Propiedades de FileSP en Filtros. El filtro está asociado con el puerto de recepción NetTcp. Los mensajes aceptados en el puerto de recepción netTcpRP se enviarán a la ubicación de salida del puerto de envío fileSP de C:\WCFCustomMessageProcessing\Out después de que la ubicación de recepción ejecute el procesamiento de XPath en el mensaje.

    • Puerto de recepción de NetTcpRP: puerto que contiene lógicamente la ubicación de recepción de NetTcpRL.

    • Ubicación de recepción de NetTcpRL: usa la canalización PassThroughTransmit predeterminada y el adaptador de WCF-NetTcp para ejecutar una instrucción XPath para extraer los datos de imagen JPEG del mensaje WCF entrante.

Otros pasos para configurar la aplicación WCFCustomMessageProcessing

  • Como alternativa, estos son los pasos manuales para configurar la aplicación sin usar el archivo C:\WCFCustomMessageProcessing\bindings.xml . No es necesario que haga esto si el proceso de importación de archivo de enlace anterior funciona correctamente. Sin embargo, su lectura le proporcionará información de lo que ocurre con el archivo MSI.

  • Cree un puerto de recepción unidireccional (NetTcpRP) y una ubicación de recepción (NetTcpRL).

    1. Expanda la aplicación WCFCustomMessageProcessing , haga clic con el botón derecho en Puertos de recepción, seleccione Nuevo y seleccione Puerto de recepción unidireccional. En el cuadro de diálogo Propiedades del puerto de recepción, escriba NetTcpRP en Nombre y haga clic en Aceptar.

    2. Haga clic con el botón derecho en el puerto de recepción netTcpRP , seleccione Nuevo y seleccione Ubicación de recepción. En el cuadro de diálogo Propiedades de ubicación de recepción, escriba NetTcRL en Nombre. En la sección Transporte , haga clic en el cuadro de lista desplegable Tipo , seleccione WCF-NetTcp en la lista desplegable y, a continuación, haga clic en Configurar.

    3. En la pestaña General, escriba net.tcp://localhost/NetTcpRL/Image en el campo Address(URI).

    4. En la pestaña Seguridad , establezca el modo de seguridad en Ninguno.

    5. En la pestaña Mensaje , seleccione la opción Ruta de acceso para el cuerpo del mensaje entrante de BizTalk y escriba /*[local-name()="SendPicture" and namespace-uri()='http://tempuri.org/']/*[local-name()="stream"] para la expresión de ruta de acceso del cuerpo. Seleccione Base64 como Codificación de nodo. La opción Ruta de acceso se establece en valor porque el cuerpo del mensaje WCF que BizTalk Server recibe tiene el siguiente formato: <SendPicture xmlns="http://tempuri.org/"><stream>real base 64 codificada datos< de imagen binaria/stream></SendPicture>

    6. En el cuadro de diálogo Propiedades de ubicación de recepción, haga clic en Aceptar.

  • Cree un puerto de envío de archivos unidireccional (FileSP) suscrito al puerto de recepción NetTcpRP.

    1. Haga clic con el botón derecho en Puertos de envío, seleccione Nuevo y seleccione Puerto de recepción unidireccional. Seleccione Puerto unidireccional estático. Escriba FileSP en Nombre.

    2. En la sección Transporte , haga clic en el cuadro de lista desplegable Tipo , seleccione ARCHIVO en la lista desplegable y, a continuación, haga clic en Configurar.

    3. En Carpeta de destino , escriba C:\WCFCustomMessageProcessing\Outy haga clic en Aceptar.

    4. Haga clic en Filtros, seleccione BTS.ReceivePortName == NetTcpRPy, a continuación, haga clic en Aceptar.

Configuración del puerto de envío y ejecución de la aplicación

  1. Haga clic con el botón derecho en la aplicación WCFCustomMessageProcessing y seleccione Iniciar. Esto dará de alta la ubicación de recepción NetTcpRL e iniciará el puerto de envío FileSP.

  2. En Visual Studio, abra el Client.sln archivo desde la carpeta C:WCFCustomMessageProcessing\Client . En Explorador de soluciones, haga clic con el botón derecho en el proyecto Cliente y seleccione Compilar.

  3. En Visual Studio, seleccione Depurar y, a continuación, seleccione Iniciar sin depurar para ejecutar la aplicación Client.exe. Aparecerá un símbolo del sistema que indica que la imagen se envió a BizTalk Server.

  4. Observe la salida correcta del archivo {GUID}.jpg en la carpeta del archivo de puerto de envío de C:\WCFCustomMessageProcessing\Out. Esto muestra que el procesamiento de la aplicación para extraer el archivo JPEG y escribirlo en un puerto de envío FILE se completó correctamente.