Compartir a través de


Tutorial: Publicar servicios WCF con el adaptador de WCF-NetMsmq

Nota

Para obtener más información sobre los adaptadores, consulte Adaptadores en BizTalk Server.

Introducción

En BizTalk Server, una orquestación se puede publicar como un servicio de Windows Communication Foundation (WCF). A través de una ubicación de recepción de BizTalk, una orquestación puede exponer un punto de conexión WCF, lo que le permite llamarlo un cliente WCF. El Asistente para publicación de servicios WCF de BizTalk proporciona una manera sencilla de exponer una orquestación como ubicación de recepción.

El adaptador de WCF-NetMsmq usa el enlace NetMsmqBinding para proporcionar compatibilidad con el uso de Microsoft Message Queuing (también conocido como MSMQ) como su transporte subyacente. El cliente de un servicio WCF envía mensajes WCF a una cola MSMQ mediante la ubicación de recepción configurada para usar el adaptador de WCF-NetMSMQ. El adaptador recoge los mensajes WCF de la cola MSMQ, los convierte en BizTalk Server formato y los escribe en la base de datos BizTalk Server Cuadro de mensajes.

En este tutorial se muestra cómo una aplicación de consola cliente WCF usa el adaptador de WCF-NetMsmq para comunicarse con un servicio WCF, hospedado en una aplicación de consola de .NET, a través de una cola de mensajes MSMQ. Muestra cómo se publican los metadatos para una ubicación de recepción con el Asistente para publicación de Servicio WCF de BizTalk. También se muestra cómo se configura una aplicación Web para admitir la publicación de metadatos.

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

  • Desde Visual Studio, use el comando Implementar para implementar ensamblados de BizTalk en una instancia local de BizTalk Server. De este modo, se creará una aplicación de BizTalk que se rellenará con los ensamblados. Un ensamblado de BizTalk contiene información de recursos, como orquestaciones, canalizaciones, esquemas y asignaciones que se utilizarán en una solución de BizTalk.

  • En la consola de administración de BizTalk Server, configure una ubicación de recepción de WCF-NetMsmq para hospedar el servicio WCF publicado.

  • Desde el Asistente para publicación de servicios WCF de BizTalk, cree la aplicación web para publicar metadatos para una ubicación de recepción existente. El cliente que envía mensajes a la ubicación de recepción usa estos metadatos.

Requisitos previos

Para llevar a cabo los pasos descritos en 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, .NET Framework y 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 enlace o 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.

Compilación e implementación de la solución de BizTalk, BizTalkApp

  1. Extraiga WCFNetMsmqAdapterPublishing.exe en C:\WCFNetMsmqAdapterPublishing.

  2. En Visual Studio, abra el archivo WCFNetMsmqAdapterPublishing.sln .

  3. En Explorador de soluciones, expanda BizTalkApp y abra OrderProcess.odx para revisarlo. La orquestación de ejemplo recibe mensajes de solicitud de pedido y simplemente devuelve los mensajes de respuesta del pedido.

  4. Dado que el ensamblado de BizTalkApp debe instalarse en la GAC, necesitará un archivo de clave de nombre seguro para completar el proceso de implementación. Haga clic con el botón derecho en el proyecto de BizTalkApp y, a continuación, haga clic en Propiedades. En la página Propiedades , haga clic en Firma y seleccione Firmar el ensamblado. Haga clic en la flecha abajo de la lista desplegable Elegir un archivo de clave de nombre seguro , haga clic en <Nuevo> y escriba keyfile.snk en el cuadro de texto Nombre de archivo de clave . Desactive Proteger mi archivo de clave con una contraseña y, a continuación, haga clic en Aceptar.

  5. Haga clic en la pestaña Implementación y, a continuación, cambie la propiedad Server si usa un servidor de base de datos diferente para la base de datos de administración de BizTalk además de LOCALHOST. Asegúrese de que el valor de la aplicación de BizTalk esté establecido en WCFNetMsmqAdapterPublishing. Asegúrese de que Install to Global Assembly Cache (Instalar en caché global de ensamblados ) esté establecido en True.

  6. En Explorador de soluciones, haga clic con el botón derecho en el proyecto de BizTalkApp y, a continuación, haga clic en Recompilar.

  7. En Explorador de soluciones, haga clic con el botón derecho en BizTalkApp y, a continuación, haga clic en Implementar.

Configuración de la aplicación

  1. Asegúrese de que el componente Message Queue Server (MSMQ) esté instalado en el equipo. Para ello:

    1. Haga clic en Inicio, haga clic con el botón secundario en Mi PC y, luego, haga clic en Administrar para abrir el Administrador de servidores.

    2. Expanda el nodo Características . Si Message Queuing no está instalado, haga clic con el botón derecho en Características y seleccione Agregar características. Active Message Queuing, haga clic en Siguientey, a continuación, haga clic en Instalar para instalar MSMQ en ese sistema.

  2. Asegúrese de que Message Queue Server (MSMQ) se haya iniciado en el equipo para que el adaptador de WCF-NetMsmq pueda usarlo. Para ello:

    1. Haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Servicios.

    2. En Servicios, asegúrese de que el estado del servicio Message Queuing sea Iniciado. Si el servicio no se inicia, haga clic con el botón derecho en Message Queuing y, a continuación, haga clic en Iniciar.

  3. Cree la cola de destino que usa la ubicación de recepción desde la que el adaptador de WCF-NetMsmq recoge los mensajes de WCF entrantes de los clientes.

    1. Haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administración de equipos.

    2. En Administración de equipos, expanda Servicios y aplicaciones y Message Queue Server, haga clic con el botón secundario en Colas privadas, elija Nuevo y, a continuación, haga clic en Colas privadas.

    3. En el cuadro de diálogo Nueva cola privada , escriba WCFNetMsmqAdapterPublishing el cuadro de texto Nombre de la cola , active la casilla Transaccional y haga clic en Aceptar.

  4. Cree una ubicación de recepción WCF-NetMsmq para la aplicación de ejemplo. Para ello:

    1. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y, a continuación, haga clic en administración de BizTalk Server.

    2. En la consola de administración de BizTalk Server, expanda Grupo de BizTalk, Aplicaciones, expanda WCFNetMsmqAdapterPublishing, haga clic con el botón derecho en Puertos de recepción, seleccione Nuevoy, a continuación, haga clic en Puerto de recepción unidireccional.

    3. En el cuadro de diálogo Propiedades del puerto de recepción, en el cuadro de texto Nombre , escriba WCFNetMsmqAdapterPublishing.ReceivePurchaseOrdery, a continuación, haga clic en Aceptar.

    4. En la consola de administración de BizTalk Server, haga clic con el botón derecho en WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder, seleccione Nuevo y, a continuación, haga clic en Ubicación de recepción.

    5. En el cuadro de diálogo Propiedades de ubicación de recepción, en el cuadro de texto Nombre , escriba WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq.

    6. En el cuadro de diálogo Propiedades de ubicación de recepción, en la sección Transporte junto a Tipo, seleccione WCF-NetMsmq en la lista desplegable y, a continuación, haga clic en Configurar.

    7. En el cuadro de diálogo Propiedades de transporte WCF-NetMsmq , en la pestaña General , en el cuadro de texto Dirección (URI), escriba net.msmq://localhost/private/WCFNetMsmqAdapterPublishing.

    8. En el cuadro de diálogo Propiedades de transporte WCF-NetMsmq , en la pestaña Enlace , asegúrese de que la casilla Transaccional está activada.

      Nota

      Como ha creado la cola de destino como una cola transaccional, debe activar esta casilla de verificación. Si no se activa, la ubicación de recepción no se habilitará ya que existirá una discrepancia entre el requisito transaccional de la ubicación de recepción y el de la cola MSMQ subyacente.

    9. En el cuadro de diálogo Propiedades de transporte WCF-NetMsmq , en la pestaña Seguridad , seleccione Ninguno en la lista desplegable Modo de seguridad.

      Nota

      En este tutorial se supone que MSMQ está instalado con la integración de Active Directory deshabilitada en el equipo. El valor predeterminado, WindowsDomain, para la propiedad de modo de autenticación MSMQ está disponible cuando está habilitada la integración de Active Directory.

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

  5. Cree un puerto de envío de archivos para la aplicación de ejemplo. Este puerto se usa para enrutar la respuesta desde el pedido de compra de la orquestación subyacente del servicio.

    1. En la consola de administración de BizTalk Server, expanda WCFNetMsmqAdapterPublishing, haga clic con el botón derecho en Puertos de envío, seleccione Nuevoy, a continuación, haga clic en Puerto de envío unidireccional estático.

    2. En el cuadro de diálogo Propiedades de puerto de envío , en el cuadro de texto Nombre , escriba WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File.

    3. En el cuadro de diálogo Propiedades del puerto de envío, en la sección Transporte situada junto a Tipo, seleccione ARCHIVO en la lista desplegable y, a continuación, haga clic en Configurar.

    4. En el cuadro de diálogo Propiedades de transporte de archivos , en la pestaña General , en el cuadro de texto Carpeta de destino, escriba C:\WCFNetMsmqAdapterPublishing\Outy, a continuación, haga clic en Aceptar.

    5. En el cuadro de diálogo Propiedades del puerto de envío, haga clic en Aceptar.

  6. Especifique el nombre de host y los enlaces de la aplicación de ejemplo. Para ello:

    1. En la consola de administración de BizTalk Server, expanda WCFNetMsmqAdapterPublishing, expanda Orquestaciones, haga clic con el botón derecho en la orquestación de ejemplo, haga clic en Propiedades, haga clic en Enlaces y establezca Host en BizTalkServerApplication u otro host adecuado.

    2. En el cuadro de diálogo Propiedades de orquestación , seleccione WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder en la lista desplegable Puertos de recepción para PurchaseOrderRequestPort.

    3. En el cuadro de diálogo Propiedades de orquestación , seleccione WCFNetMsmqAdapterPublishing.SendPurchaseOrder.File en la lista desplegable Puertos de envío /Grupos de puertos de envío para purchaseOrderResponsePort.

    4. En el cuadro de diálogo Propiedades de orquestación , haga clic en Aceptar para guardar la configuración.

Publicar los metadatos para la ubicación de recepción del WCF-NetMsmq

  1. Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y, a continuación, haga clic en Asistente para publicación de servicios WCF de BizTalk.

  2. En la página Asistente para publicación de servicios WCF de BizTalk , haga clic en Siguiente.

  3. En la página Tipo de servicio WCF , active la casilla Punto de conexión de solo metadatos (MEX) para publicar los metadatos de la ubicación de recepción wcFNetMsmq. Seleccione WCFNetMsmqAdapterPublishing.ReceivePurchaseOrder.NetMsmq en la lista desplegable Publicar metadatos para la ubicación de recepción y, a continuación, haga clic en Siguiente.

  4. En la página Crear servicio WCF , seleccione Publicar orquestaciones de BizTalk como servicio WCF y, a continuación, haga clic en Siguiente.

  5. En la página Ensamblado de BizTalk , en el cuadro de texto Archivo de ensamblado de BizTalk (*.dll), haga clic en Examinar para ir a la carpeta C:\WCFNetMsmqAdapterPublishing\BizTalkApp\bin\Development , haga doble clic en el ensamblado que contiene la orquestación de ejemplo que se va a publicar y, a continuación, haga clic en Siguiente.

  6. En la página Orquestaciones y puertos , asegúrese de que el nodo Puerto: PurchaseOrderRequestPort está seleccionado en la página y, a continuación, haga clic en Siguiente.

    Se publicará el intercambio de metadatos para el puerto de recepción y el cliente lo usará para enviar mensajes a la ubicación de recepción.

  7. En la página Propiedades del servicio WCF , en el cuadro de texto Espacio de nombres de destino del servicio WCF , escriba un URI que desee que use este servicio WCF publicado y, a continuación, haga clic en Siguiente. Para este tutorial, deje el URI predeterminado, http://tempuri.org/.

  8. En la página Ubicación del servicio WCF , realice las siguientes acciones para especificar la ubicación de los servicios WCF que se van a crear y, a continuación, haga clic en Siguiente:

    1. En el cuadro de texto Ubicación , escriba el nombre del directorio web donde se ejecuta el servicio WCF o haga clic en Examinar y seleccione un directorio web. Para este tutorial, deje la ubicación predeterminada (http://localhost/<Nombre> del ensamblado de BizTalk) en el cuadro de texto Ubicación.

    2. Seleccione la opción Permitir el acceso anónimo al servicio WCF . Esta opción agrega acceso anónimo al directorio virtual creado. Es necesario seleccionarla para permitir la autenticación anónima para la aplicación Web que se creará en este tutorial.

  9. En la página Resumen del servicio WCF , haga clic en Crear para crear el servicio WCF.

  10. En la página Finalización del Asistente para publicación de servicios WCF de BizTalk , haga clic en Finalizar.

Configuración de la aplicación web que hospeda el servicio de metadatos publicados

  1. Abra un símbolo del sistema, vaya a la carpeta C:\inetpub\wwwroot\Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp donde el Asistente para publicación del servicio WCF de BizTalk creó el servicio WCF. Abra el archivo Web.config mediante el Bloc de notas.

  2. En el Bloc de notas, agregue la siguiente línea dentro del <elemento system.web> :

    <trust level="Full" originUrl="" />
    

    Nota

    Esta configuración es opcional. Concede a la aplicación ASP.NET que hospeda el servicio WCF publicado acceso a cualquier recurso que esté sujeto a la seguridad del sistema operativo.

  3. Pruebe el Servicio WCF publicado mediante Internet Explorer. Para ello:

    1. Haga clic en Inicio, seleccione Herramientas de administradory, a continuación, haga clic en Administrador de Internet Information Services (IIS).

    2. En el Administrador de IIS, cree un grupo de aplicaciones en el que se ejecutará este servicio y que tenga los permisos correctos para la base de datos de BizTalk. Haga clic con el botón derecho en Grupos de aplicaciones, haga clic en Agregar grupo de aplicaciones, escriba un nombre para el grupo de aplicaciones y, a continuación, haga clic en Aceptar.

    3. Expanda Grupos de aplicaciones, haga clic con el botón derecho en el grupo de aplicaciones que acaba de crear y, a continuación, seleccione Configuración avanzada. En la sección Modelo de proceso, escriba la cuenta que tiene acceso a las bases de datos BizTalk Server en el campo Identidad.

    4. Expanda Sitios web, sitio web predeterminado y, a continuación, expanda la aplicación web que creó el Asistente para publicación de servicios WCF de BizTalk.

    5. En el Administrador de IIS, en el panel central, haga clic en Vista de contenido para mostrar los archivos de la aplicación.

    6. Haga clic con el botón derecho en el archivo de servicio Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc que creó el Asistente para publicación de servicios WCF de BizTalk y, a continuación, haga clic en Examinar. Se abre Internet Explorer para mostrar la página servicio BizTalkServerInstance que indica que se está ejecutando una instancia del servicio WCF. La página muestra una dirección WSDL completa que puede copiar y usar con la Herramienta de metadatos de servicio (svcutil.exe), o desde Visual Studio, para recuperar el código proxy y un archivo de configuración que se puede usar para crear una aplicación cliente para el servicio.

    7. Copie en el Portapapeles la línea de comandos con la dirección WSDL completa de la página del servicio BizTalkServerInstance que Internet Explorer muestra en el paso anterior.

      svcutil.exe http://localhost/Microsoft.Samples.BizTalk.WCF.NetMsmqPublishing.BizTalkApp/Microsoft_Samples_BizTalk_WCF_NetMsmqPublishing_BizTalkApp_OrderProcess_PurchaseOrderRequestPort.svc?wsdl

Compilación de la aplicación cliente

  1. Abra un símbolo del sistema de Visual Studio como Administrador y vaya a la carpeta C:\WCFNetMsmqAdapterPublishing\WCFClient . Aquí es donde colocará archivo de configuración de la aplicación y de la clase de proxy.

  2. Pegue toda la línea de comandos de svcutil.exe que contiene la dirección WSDL completa que ha copiado en el procedimiento anterior y presione ENTRAR. Esto crea la clase de proxy, BizTalkServiceInstance.cs y el archivo de configuración de la aplicación, output.config. Mantenga abierta la ventana del símbolo del sistema para su uso durante la sección final.

  3. En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en WCFClient, seleccione Agregar y, a continuación, haga clic en Elemento existente.

  4. En el cuadro de diálogo Agregar elemento existente , vaya a la carpeta WCFClient , seleccione Todos los archivos (*.*) en la lista desplegable Archivos de tipo , seleccione los archivos BizTalkServiceInstance.cs y output.config y, a continuación, haga clic en Agregar.

  5. Expanda WCFClient, haga clic con el botón derecho enoutput.config, haga clic en Cambiar nombrey, a continuación, escriba App.config como el nuevo nombre.

  6. Haga doble clic en Program.cs para revisar cómo llamar al servicio WCF publicado mediante la clase de proxy generada por svcutil.exe.

  7. Expanda Referencias y asegúrese de que el proyecto WCFClient tiene System.ServiceModel.dll referencia.

  8. Haga clic con el botón derecho en el proyecto WCFClient y seleccione Compilar. Mantenga Visual Studio abierto y vaya a la sección siguiente.

Prueba de la solución de ejemplo con el adaptador de WCF-NetMsmq

  1. En la consola de administración de BizTalk Server, haga clic con el botón derecho en la aplicación WCFNetMsmqAdapterPublishing y, a continuación, haga clic en Iniciar. En el cuadro de diálogo Inicio , haga clic en Iniciar.

  2. En la consola de administración de BizTalk Server, expanda Configuración de la plataforma, expanda Instancias de host, haga clic con el botón derecho en BizTalkServerApplication u otra instancia de host adecuada y, a continuación, haga clic en Reiniciar. Aunque este paso no es necesario, es aconsejable asegurarse de que el ejemplo funciona correctamente hasta este punto.

  3. En Visual Studio, en el menú Depurar , haga clic en Iniciar sin depurar para ejecutar la aplicación WCFClient. Esto envía un mensaje de ejemplo a la ubicación de recepción WCF-NetMsmq. Aparecerá el mensaje de salida siguiente que indica que se ha enviado el mensaje.

    Llamada a la operación de envío en la ubicación de recepción de WCF-NetMsmq

    Presione cualquier tecla para cerrar la aplicación cliente de WCF

  4. Presione cualquier tecla para cerrar la aplicación WCFClient.

  5. En el símbolo del sistema de Visual Studio, vaya a la carpeta C:\WCFNetMsmqAdapterPublishing\Out y asegúrese de que existe el mensaje de respuesta que la aplicación WCFClient ha enviado.

  6. Haga doble clic en el archivo {GUID}.xml para abrirlo en Internet Explorer y ver el valor orderID procesado por el servicio.

Consulte también

Configurar un adaptador WCF de ubicación de recepción WCF-NetMsmq Tutoriales del servicio de publicación de metadatos del servicio de publicación para los adaptadores de recepción de WCF