Cómo controlar los contratos con tipos erróneos en orquestaciones
En este tema se explica cómo controlar los contratos con tipos erróneos al consumir servicios WCF desde las orquestaciones. Para controlar las excepciones de error con tipo en las orquestaciones, los servicios WCF que consume deben tener el faultContractAttribute aplicado a las operaciones de servicio; por lo tanto, los errores se pueden producir mediante FaultException<T> , donde T puede ser cualquier contrato de datos válido o tipo serializable de los servicios WCF.
Procedimientos
Para controlar los contratos con tipo erróneo en orquestaciones
En el proyecto de BizTalk de Microsoft Visual Studio, en Explorador de soluciones, haga clic con el botón derecho en el proyecto, haga clic en Agregar y, a continuación, haga clic en Agregar elementos generados.
En el cuadro de diálogo Agregar elementos generados : <nombre del proyecto> , 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.
En la página Origen de metadatos , seleccione Punto de conexión de Intercambio de metadatos (MEX) y, a continuación, haga clic en Siguiente.
En la página Punto de conexión de metadatos , especifique la dirección URL del servicio en ejecución que proporciona metadatos para su descarga a través de WS-Metadata Exchange o Http-Get, por ejemplo, http://localhost:8005. Para obtener el documento de metadatos de la dirección URL, haga clic en Obtener. Si el servicio en ejecución requiere una credencial de usuario con el esquema de autenticación básico, haga clic en Editar para abrir el cuadro de diálogo Asistente para consumo de servicios WCF de BizTalk en el que puede proporcionar el nombre de usuario y la contraseña que se van a usar al acceder al servicio en ejecución. Haga clic en Next.
En la página Importar resumen de metadatos del servicio WCF , revise la configuración. Puede hacer clic en Atrás para realizar los cambios. A continuación, haga clic en Importar para crear los artefactos y tipos de BizTalk que se usarán para consumir el servicio WCF.
En la página Finalización del Asistente para consumo de servicios WCF de BizTalk , haga clic en Finalizar.
Supongamos que el Servicio WCF que va a consumir inicia la siguiente excepción de error:
throw new FaultException<MyOperationException>(divideException);
La operación de error en el puerto de envío espera un mensaje de tipo MyOperationException, pero el mensaje de respuesta WCF contiene todo el cuerpo del error. Por lo tanto, debe extraer la parte MyOperationException del mensaje configurando la opción Cuerpo del mensaje entrante de BizTalk en el cuadro de diálogo propiedades de transporte. Por ejemplo,
Seleccione Ruta de acceso: contenido ubicado por ruta de acceso del cuerpo.
Establezca la expresión de ruta del cuerpo a continuación:
/*[local-name()='Fault']/*[local-name()='Detail']/* | /*[local-name()='DivideResponse']
Seleccione Xml en la lista desplegable Codificación de nodos .
En la orquestación, será necesario agregar un ámbito y dos controladores de excepción. Un controlador de excepciones es para la operación de error, similar a MyOperationException que se muestra en el ejemplo anterior; el otro controlador de excepciones es para detectar SOAPExceptions genéricos.
Consulte también
Cómo iniciar excepciones erróneas desde orquestaciones publicadas como servicios WCF
Cómo utilizar el Asistente para consumición del Servicio WCF de BizTalk para consumir un Servicio WCF