Tutorial: Consumir servicios WCF con el adaptador de WCF-BasicHttp
Nota
Para obtener más información sobre los adaptadores, consulte Adaptadores en BizTalk Server.
Introducción
En este tutorial, consumirá un servicio de Windows Communication Foundation (WCF) hospedado dentro de Internet Information Services (IIS) mediante la mensajería de BizTalk y el adaptador de envío de WCF-BasicHttp. Este adaptador usa el enlace BasicHttpBinding para proporcionar una implementación de pila de transporte o protocolo compatible con versiones anteriores de servicios web para servir como puente entre Microsoft BizTalk Server y la funcionalidad WCF. Una orquestación puede enlazarse a un puerto de envío que usa un adaptador WCF para llamar a un servicio WCF y aprovechar su funcionalidad dentro de su procesamiento empresarial lógico.
El adaptador de WCF-BasicHttp se compone tanto de un adaptador de envío como de uno de recepción. En este ejemplo, solo usará el lado de envío de este adaptador para realizar solicitudes de servicio WCF a través del protocolo HTTP a un servicio WCF. Para un puerto de envío de Solicit-Response, el adaptador de envío envía a un servicio WCF y recibe una respuesta de resultado. Por el contrario, un adaptador de recepción WCF permite publicar y llamar externamente a una orquestación de BizTalk Server. Consulte los servicios WCF de publicación para obtener información adicional.
Cuando concluya el tutorial, comprenderá cómo se realizan las tareas siguientes:
Desde Microsoft Visual Studio, use el comando Deploy para implementar los ensamblados que contienen la solución BizTalk Server y el servicio WCF en una instancia local de BizTalk Server. De este modo, se creará una aplicación de BizTalk que se rellenará con los ensamblados.
Desde Visual Studio, use el Asistente para consumo de servicios WCF de BizTalk para generar los esquemas y tipos de BizTalk Server necesarios para consumir el servicio WCF. También se genera una orquestación vacía, que se puede usar y enlazar con un puerto lógico. Esta orquestación se compila e implementa junto con esquemas y tipos. Pero el procesamiento del flujo de trabajo de orquestación está vacío aquí y no se usa en este ejemplo, ya que esto es simplemente un escenario de mensajería BizTalk Server puro.
En la consola de administración de BizTalk Server, configure el enrutamiento basado en contenido mediante el puerto de envío de WCF-BasicHttp. Configurará el encabezado SOAPAction que el servicio WCF de destino espera recibir.
En la consola de administración de BizTalk Server, configure la expresión de filtro para enrutar los mensajes de error soap que un servicio WCF puede enviar a una carpeta de salida.
Desde el Administrador de Internet Information Services (IIS), configure la aplicación web que hospeda el servicio WCF para exponer sus metadatos. Una vez habilitado, el Asistente para consumo de servicios WCF de BizTalk puede obtener estos metadatos para generar tipos y esquemas para acceder al servicio WCF.
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 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 el procedimiento de configuración único para los ejemplos de Windows Communication Foundation.
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.
Implementación del servicio WCF de ejemplo
Ejecute el archivo deWCFBasicHttpSendAdapter.exe de extracción automática y extraiga los archivos en la carpeta C:\WCFBasicHttpSendAdapter .
Abra C:\WCFBasicHttpSendAdapter\WCFBasicHttpSendAdapter.sln en Visual Studio.
En Explorador de soluciones, expanda el proyecto BasicHttpWCFServiceConsuming. Este proyecto es el servicio WCF al que llamará el puerto de envío. Será hospedado en un entorno de host administrado mediante Internet Information Services (IIS). El hospedaje en IIS usa la activación basada en mensajes para administrar la activación y duración del servicio. Expanda App_Code y abra OrderProcess.cs para revisarlo. Este servicio WCF recibe mensajes de solicitud de pedido a través del método OrderRequest . El archivo OrderProcess.cs contiene la desfición de interfaz y la implementación del servicio WCF. Simplemente devuelve mensajes de respuesta de pedido a través del método OrderResponse .
Revise el archivo OrderProcess.svc. Solo contiene una línea que se usa para indicar a IIS que debe activar el servicio para una aplicación cliente. El atributo @ServiceHost usado para hospedar el servicio es un punto de extensibilidad dentro del modelo de programación WCF. Un patrón de fábrica usa ServiceHostFactory para crear una instancia de ServiceHost con una instancia del servicio WCF para controlar las solicitudes entrantes. La creación de instancias de esta instancia se basa en la propiedad ServiceBehaviorAttribute.ConcurrencyMode , que determina si un servicio admite un subproceso, varios subprocesos o llamadas reentrantes. La creación de instancias también viene determinada por la propiedad ServiceBehavior.InstanceMode , que determina si una única instancia atenderá a todos los autores de llamadas (singleton), si se creará una instancia por llamada (sin estado), o si se creará una instancia para cada sesión (con estado).
<%@ServiceHost language=c# Debug="true" Service="Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.OrderProcessServiceType" %>
En Visual Studio, en Explorador de soluciones, abra Web.config para revisar. Cuando se hospeda en IIS, un servicio WCF se configura mediante un archivo Web.config en lugar de un archivo app.config como cuando se hospeda en una aplicación de consola.
Asegúrese de que el atributo httpGetEnabled del < elemento serviceMetaData> está establecido
true
en para que el Asistente para consumo de servicios WCF de BizTalk pueda consumir los metadatos del servicio.Asegúrese de que el atributo mode del < elemento de seguridad> está establecido en None. Dado que este tutorial usa el modo de seguridad Ninguno , la aplicación web que hospeda este servicio debe configurarse para permitir el acceso anónimo.
Dado que el ensamblado Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming debe estar instalado 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 BasicHttpWcfServiceConsuming 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.En Explorador de soluciones, haga clic con el botón derecho en BasicHttpWcfServiceConsuming y, a continuación, haga clic en Recompilar.
Con el Explorador de Windows, copie el contenido de C:\WCFBasicHttpSendAdapter\BasicHttpWCFServiceConsuming en la carpeta C:\InetPub\wwwroot .
Configure la aplicación web para hospedar el servicio WCF de la siguiente manera:
Haga clic en Inicio, seleccione Herramientas de administrador y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
Cree un grupo de aplicaciones en el que se va a ejecutar este servicio. 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.
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 de BizTalk Server en el campo Identidad.
Expanda Sitios, expanda Sitio web predeterminado, haga clic con el botón derecho en BasicHttpWCFServiceConsumingy, a continuación, haga clic en Convertir en aplicación para crear una aplicación web para este servicio WCF.
En el cuadro de diálogo Convertir en aplicación , haga clic en Seleccionar para seleccionar el grupo de aplicaciones creado anteriormente y, a continuación, haga clic en Aceptar.
En la vista Características, haga clic en el icono Autenticación y asegúrese de que la opción Autenticación anónima está habilitada. Esto admite servicios WCF con el modo de seguridad Ninguno .
Pruebe el servicio WCF publicado de la siguiente manera:
En el Administrador de IIS, expanda Sitios web y, a continuación, expanda BasicHttpWCFServiceConsuming.
En el Administrador de IIS, en el panel derecho, haga clic con el botón derecho en OrderProcess.svc y, a continuación, haga clic en Examinar. Se abre Internet Explorer para mostrar la página Servicio OrderProcessServiceType que indica que ha creado correctamente un servicio WCF en ejecución. La página también incluye una dirección WSDL completa que puede copiar y usar con una herramienta de metadatos de servicio (svcutil.exe) para crear código de proxy y un archivo de configuración que puede usarse para desarrollar una aplicación cliente para el servicio.
Copie la dirección completa de WSDL en el Portapapeles del sistema. No copie la parte "svcutil.exe" :
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc?wsdl
Agregar los esquemas y tipos para el adaptador de WCF-BasicHttp a la aplicación de BizTalk de ejemplo
Dado que el adaptador llamará al servicio WCF, necesita información de esquemas y tipos sobre cómo realizar esa llamada a ese servicio mediante los metadatos. BizTalkApp proporciona los artefactos para consumir el servicio WCF. En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en BizTalkApp, haga clic en Agregar y, a continuación, haga clic en Agregar elementos generados.
En el cuadro de diálogo Agregar elementos generados , en la sección Plantillas , seleccione Consumir servicio WCF y, a continuación, haga clic en Agregar.
En la página Asistente para consumo de servicios WCF de BizTalk , haga clic en Siguiente. Este asistente leerá los metadatos y creará esquemas y tipos.
En la página Origen de metadatos , seleccione la opción de punto de conexión de Intercambio de metadatos (MEX) para consumir metadatos de la dirección URL que copió en el Portapapeles en el procedimiento anterior y, a continuación, haga clic en Siguiente.
En la página Punto de conexión de metadatos , pegue la dirección WSDL completa que copió en el procedimiento anterior en la lista desplegable Dirección de metadatos y, a continuación, haga clic en Obtener para obtener el documento de metadatos del servicio WCF de ejemplo. Obtener los metadatos habilita el botón Siguiente . Haga clic en Siguiente para continuar.
En la página Importar resumen de metadatos del servicio WCF , revise la configuración. Este cuadro de diálogo muestra los resúmenes de espacio de nombres, de XSD y de WSDL de los metadatos que van a importarse. También muestra dónde se escribirán los archivos de orquestación (.odx), enlaces (.xml) y esquema (.xsd) durante el proceso de importación. Haga clic en Importar para crear los artefactos y tipos de BizTalk que se usarán para consumir el servicio WCF de ejemplo.
En la página Finalización del Asistente para consumo de servicios WCF de BizTalk , haga clic en Finalizar.
En Visual Studio, en Explorador de soluciones, el Asistente para consumo de servicios WCF de BizTalk genera los siguientes archivos:
Un archivo de orquestación OrderProcessServiceType.odx. No hay ninguna fase de flujo de trabajo en esta orquestación. Sin embargo, podría agregarlo y enlazarlo a puertos lógicos para consumir el servicio WCF. Contiene los tipos importantes de BizTalk, tales como tipos de puerto y tipos de mensaje de varias partes, que se usan en este ejemplo. Para ver esta información, haga doble clic en la orquestación OrderProcessServiceType.odx . Haga clic en Ver, en Otras ventanas y en Vista de orquestación. Expanda Tipos, Tiposde puertoy, a continuación, expanda IOrderProcess. Verá el método Submit . Expanda ese método y verá los tipos de puerto OrderRequest y OrderResponse . Haga clic en cada tipo de puerto y vea sus campos Descripción en el explorador de propiedades y vea los distintos mensajes de entrada y salida de WSDL. Haga clic en Tipos de mensajes de varias partes y vea los tipos de mensajes de varias partes OrderRequest y OrderResponse . Haga clic en sus campos Descripción y vea los nombres de mensaje WDSL para cada tipo de mensaje.
Se generan dos archivos de esquema. El primer archivo de esquema (OrderProcessServiceType_biztalk_WCF_basichttpsendadapter_basichttpWCFserviceconsuming.xsd) define los tipos de mensaje que usa el servicio WCF de ejemplo. Usa el campo OrderID en las llamadas OrderRequest y OrderResponse .
DataContractSerializer exporta el segundo archivo de esquema (OrderProcessServiceType_schemas_microsoft_com_2003_10_Serialization.xsd) para los tipos, elementos y atributos del espacio de nombres ,
http://schemas.microsoft.com/2003/10/Serialization/
.Se generan dos archivos de enlace, que se usarán más adelante para crear la aplicación de BizTalk: OrderProcessServiceType.BindingInfo.xml y OrderProcessServiceType_Custom.BindingInfo.xml. En general, usará normalmente el archivo de enlace no personalizado. Sin embargo, en raras situaciones en las que tenga un elemento de enlace personalizado, use el archivo de enlace personalizado. El elemento de enlace personalizado crea puertos de envío para las aplicaciones. Haga doble clic en el archivo OrderProcessServiceType.BindingInfo.xml y busque la línea de definición SendPort y revise el puerto de envío que se creará al importar este archivo de enlace en BizTalk Server:
<SendPort Name="WCFSendPort_OrderProcessServiceType_ServiceEndpoint" … >
Estos archivos se usan para el puerto de envío mediante el adaptador WCF para consumir el servicio WCF de ejemplo descrito en los metadatos.
Implementación de la solución de BizTalk de ejemplo, BizTalkApp
Implemente la aplicación BizTalk Server de la siguiente manera:
En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en BizTalkApp y, a continuación, haga clic en Propiedades .
En la ventana Proyecto Designer, 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 Server. Asegúrese de que el nombre de la aplicación es WCFBasicHttpSendAdapter.
En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en BizTalkApp y, a continuación, haga clic en Recompilar.
En Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en BizTalkApp y, a continuación, haga clic en Implementar. Esto implementa el ensamblado Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp en la GAC y los artefactos en la aplicación de BizTalk Server denominada WCFBasicHttpSendAdapter.
Configure un puerto de envío WCF-BasicHttp en la aplicación de BizTalk de la siguiente forma:
Haga clic en Inicio, seleccione Todos los programas, Microsoft BizTalk Server 20xx y, a continuación, haga clic en administración de BizTalk Server.
En la consola de administración de BizTalk Server, expanda Grupo de BizTalk, expanda Aplicaciones, haga clic con el botón derecho en WCFBasicHttpSendAdapter, seleccione Importar y, a continuación, haga clic en Enlaces.
En el cuadro de diálogo Importar enlaces , vaya a la carpeta C:\WCFBasicHttpSendAdapter\BizTalkApp , seleccione OrderProcessServiceType.BindingInfo.xmly, a continuación, haga clic en Abrir. Este es uno de los archivos de enlace creados por el Asistente para consumo de servicios WCF de BizTalk anteriormente. Esto crea el puerto de envío WCFSendPort_OrderProcessServiceType_ServiceEndpoint .
En la consola de administración de BizTalk Server, expanda WCFBasicHttpSendAdapter y, a continuación, haga clic en Puertos de envío.
En la consola de administración de BizTalk Server, en el panel derecho, haga doble clic en WCFSendPort_OrderProcessServiceType_ServiceEndpoint, que se creó importando el archivo de enlace OrderProcessServiceType.BindingInfo.xml. Esto abre el cuadro de diálogo Propiedades del puerto de envío .
En el cuadro de diálogo Propiedades de puerto de envío, haga clic en Configurar.
En la pestaña General , revise el campo Address(URI) de
http://localhost/BasicHttpWcfServiceConsuming/OrderProcess.svc
. Esta es la dirección del servicio WCF hospedado en IIS al que llamará el adaptador de WCF-BasicHttp.Revise el contenido del cuadro de texto Encabezado de acción SOAP/Acción :
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Operation Name="Submit" Action="http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming/IOrderProcess/Submit" /> </BtsActionMapping>
Este campo indica la intención del mensaje de solicitud SOAP HTTP saliente. Aquí sirve para llamar a la operación de envío en la interfaz IOrderProcess del espacio de nombres Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWcfServiceConsuming.
Nota
El archivo de enlace que genera el Asistente para consumo de servicios WCF de BizTalk usa el formato de asignación de acciones para la propiedad StaticAction . Al usar el enrutamiento basado en contenido para los adaptadores de envío WCF para enviar mensajes a los servicios WCF, debe establecer el BTS. Propiedad operation en componentes de canalización para el formato de asignación de acciones como campo que se va a usar para el enrutamiento basado en contenido. De forma alternativa, puede usar el formato de acción única para el enrutamiento por contenidos. En este tutorial, va a usar el formato de acción única. Para obtener más información sobre el formato de acción única y el formato de asignación de acciones, vea el cuadro de diálogo Propiedades de transporte WCF-BasicHttp, Enviar, General de la guía de la interfaz de usuario y la referencia del espacio de nombres de la API de desarrolladores.
Haga clic en Aceptar dos veces para volver a la consola de administración de BizTalk Server.
Cree un puerto de recepción estático unidireccional y una ubicación de recepción ARCHIVOS. Un puerto de recepción es un contenedor lógico para una o más ubicaciones de recepción. Aquí es donde quitará un mensaje WCF de ejemplo que recogerá el adaptador de archivo y, a continuación, se enviará al servicio WCF.
En la consola de administración de BizTalk Server, expanda WCFBasicHttpSendAdapter, 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.
En el cuadro de diálogo Propiedades del puerto de recepción, en el cuadro de texto Nombre , escriba
WCFBasicSendAdapter.ReceivePurchaseOrder
y, a continuación, haga clic en Aceptar.En la consola de administración de BizTalk Server, haga clic con el botón derecho en WCFBasicHttpSendAdapter.ReceivePurchaseOrder, seleccione Nuevoy, a continuación, haga clic en Ubicación de recepción.
En el cuadro de diálogo Propiedades de ubicación de recepción, en el cuadro de texto Nombre , escriba
WCFBasicSendAdapter.ReceivePurchaseOrder.FILE
.En el cuadro de diálogo Propiedades de ubicación de recepción, en la sección Transporte situada junto a Tipo, seleccione ARCHIVO en la lista desplegable y, a continuación, haga clic en Configurar.
En el cuadro de diálogo Propiedades de transporte de archivos , en la pestaña General , en el cuadro de texto Carpeta de recepción , escriba
C:\WCFBasicHttpSendAdapter\OrderRequestIn
y, a continuación, haga clic en Aceptar.En el cuadro de diálogo Propiedades de ubicación de recepción, haga clic en Aceptar.
Cree un filtro para enrutar mensajes al puerto de envío WCF-BasicHttp desde la ubicación de recepción de archivo que ha creado en el paso anterior. Un filtro asociado con un puerto actúa como una cláusula "where" de SQL, de modo que si evalúa el mensaje como true se proporcionará a ese puerto.
En la consola de administración de BizTalk Server, expanda WCFBasicHttpSendAdapter, haga clic en Puertos de envíoy, a continuación, haga doble clic en WCFSendPort_OrderProcessServiceType_ServiceEndpoint.
En el cuadro de diálogo Propiedades del puerto de envío, en la pestaña Filtros , seleccione BTS. ReceivePortName en el campo Propiedad , escriba
WCFBasicSendAdapter.ReceivePurchaseOrder
en el campo Valor y, a continuación, haga clic en Aceptar. Esta expresión de filtro enruta los mensajes entrantes del puerto de recepción WCFBasicSendAdapter.ReceivePurchaseOrder hasta este puerto de envío WCF-BasicHttp.
Cree dos puertos de envío de archivo para la aplicación de ejemplo. El primer puerto de envío envía mensajes de respuesta de salida al puerto FILE desde el servicio WCF. El segundo puerto de envío se usa para controlar los mensajes de error enviados desde el servicio WCF destinado al cliente.
En la consola de administración de BizTalk Server, expanda WCFBasicHttpSendAdapter, 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.
En el cuadro de diálogo Propiedades de puerto de envío , en el cuadro de texto Nombre , escriba
WCFBasicSendAdapter.SendPurchaseOrder.FILE
.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.
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:\WCFBasicHttpSendAdapter\OrderResponseOut y, a continuación, haga clic en Aceptar.
En el cuadro de diálogo Propiedades del puerto de envío, en la pestaña Filtros , seleccione BTS. MessageType en el campo Propiedad , escriba
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
en el campo Valor para especificar el tipo de mensaje de respuesta del servicio WCF de ejemplo y, a continuación, haga clic en Aceptar. Esta expresión de filtro enruta los mensajes de respuesta del servicio WCF de ejemplo a este puerto de envío FILE. El puerto de envío se suscribe a mensajes de tipo OrderResponse mediante la especificación de ese tipo en la propiedad de filtro. Este es el tipo de mensaje del mensaje de respuesta del servicio WCF.En el cuadro de diálogo Propiedades del puerto de envío, haga clic en Aceptar.
En la consola de administración de BizTalk Server, expanda WCFBasicHttpSendAdapter, 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.
En el cuadro de diálogo Propiedades de puerto de envío , en el cuadro de texto Nombre , escriba
WCFAdapterErrorSend.FILE
.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.
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:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut**y, a continuación, haga clic en Aceptar.
En el cuadro de diálogo Propiedades de puerto de envío , en la pestaña Filtros , seleccione WCF. IsFault en el campo Propiedad , escriba
True
en el campo Valor y, a continuación, haga clic en Aceptar. Dentro de una aplicación se puede detectar una excepción o un error comprobando WCF. Propiedad IsFault del mensaje que se envía al autor de la llamada. Esta propiedad se establecerá en True si el mensaje que se envía es un mensaje de error SOAP. Esta expresión de filtro enruta los mensajes de error desde el servicio WCF de ejemplo a este puerto de envío FILE.
Especifique el nombre de host y los enlaces de la aplicación de ejemplo. Para ello:
En la consola de administración de BizTalk Server, expanda WCFBasicHttpSendAdapter, expanda Orquestaciones, haga clic con el botón derecho en Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BizTalkApp.OrderProcessServiceTypeClient orchestration, haga clic en Propiedades, haga clic en Enlaces, establezca Host en BizTalkServerApplication y, a continuación, haga clic en Aceptar para guardar la configuración.
Prueba de la solución de ejemplo con el adaptador de envío de WCF-BasicHttp
En la consola de administración de BizTalk Server, haga clic con el botón derecho en WCFBasicHttpSendAdapter y, a continuación, haga clic en Iniciar.
En el cuadro de diálogo Inicio , haga clic en Iniciar.
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.
Abra un símbolo del sistema, escriba iisreset para reciclar IIS y sus servicios dependientes y presione ENTRAR.
En el símbolo del sistema, copie C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Sample.xml en la carpeta C:\WCFBasicHttpSendAdapter\OrderRequestIn . Este mensaje se enruta al puerto de envío estático WcfSendPort_OrderProcessServiceType_ServiceEndpoint bidireccional Solicit-Response. El lado de envío de este puerto de envío bidireccional llama al método Submit en el servicio WCF hospedado en IIS. El resultado se devuelve al puerto de respuesta del puerto de envío de WcfSendPort_OrderProcessServiceType_ServiceEndpoint . El puerto de envío WCFBasicSendAdapter.SendPurchaseOrder.FILE tiene una suscripción que se desencadenará cuando el tipo del mensaje sea
http://Microsoft.Samples.BizTalk.WCF.BasicHttpSendAdapter.BasicHttpWCFServiceConsuming#OrderResponse
. Obtendrá el mensaje procesado correctamente y lo escribirá en la carpeta C:\WCFBasicHttpSendAdapter\OrderResponseOut .Compruebe la carpeta C:\WCFBasicHttpSendAdapter\OrderResponseOut para obtener un mensaje de respuesta del servicio WCF.
En el símbolo del sistema, C:\WCFBasicHttpSendAdapter\TestData\WCFBasicSendAdapter.OrderRequest.Invalid.xml a la carpeta C:\WCFBasicHttpSendAdapter\OrderRequestIn . Este mensaje contiene un espacio de nombres no válido para que el servicio WCF devuelva un mensaje de error.
Compruebe la carpeta C:\WCFBasicHttpSendAdapter\WCFAdapterErrorOut de un archivo XML que contiene el mensaje de error del servicio WCF. Examine el < campo faultstring> que muestra la causa del mensaje de error para que sea un cuerpo de mensaje no válido.
Consulte también
Tutorial: Publicación de servicios WCF con el adaptador de WCF-BasicHttpCómo usar el Asistente para consumo del servicio WCF de BizTalk para consumir un servicio WCFespecificando el cuerpo del mensaje para los adaptadores de WCF