Compartir a través de


Especificación del comportamiento de tiempo de ejecución del cliente

Los clientes Windows Communication Foundation (WCF), como los servicios Windows Communication Foundation (WCF), se pueden configurar para modificar el comportamiento de tiempo de ejecución con el fin de satisfacer la aplicación cliente. Tres atributos están disponibles para especificar el comportamiento de tiempo de ejecución del cliente. Los objetos de devolución de llamada de cliente dúplex pueden utilizar CallbackBehaviorAttribute y los atributos CallbackDebugBehavior para modificar su comportamiento de tiempo de ejecución. El otro atributo, ClientViaBehavior, se puede utilizar para separar el destino lógico del destino de red inmediato. Además, los tipos de devolución de llamada de cliente dúplex pueden utilizar algunos de los comportamientos de lado del servicio. Para obtener más información, consulte Especificación del comportamiento en tiempo de ejecución del servicio.

Utilizar CallbackBehaviorAttribute

Puede configurar o extender el comportamiento de ejecución de una implementación de contrato de devolución de llamada en una aplicación cliente utilizando la clase CallbackBehaviorAttribute. Este atributo realiza una función similar para la clase de devolución de llamada como la clase ServiceBehaviorAttribute, con la excepción de crear instancias del comportamiento y configuración de la transacción.

La clase CallbackBehaviorAttribute se debe aplicar a la clase que implementa el contrato de devolución de llamada. Si se aplica a una implementación de contrato de no dúplex, se produce una excepción InvalidOperationException en tiempo de ejecución. El ejemplo de código siguiente muestra una clase CallbackBehaviorAttribute en un objeto de devolución de llamada que usa el objeto SynchronizationContext para determinar el subproceso para calcular referencias, la propiedad ValidateMustUnderstand para exigir la validación del mensaje y la propiedad IncludeExceptionDetailInFaults para devolver las excepciones como objetos FaultException al servicio para los propósitos de depuración.

Utilizar CallbackDebugBehavior para habilitar el flujo de información de excepción administrada

Puede habilitar el flujo de información de excepción administrada en un objeto de devolución de llamada de cliente de nuevo al servicio para fines de depuración estableciendo la propiedad IncludeExceptionDetailInFaults en true mediante programación o desde un archivo de configuración de la aplicación.

Devolver la información de excepción administrada a los servicios puede suponer un riesgo para la seguridad porque los datos de la excepción exponen información sobre la implementación del cliente interna que los servicios desautorizados podrían utilizar. Además, aunque también se pueden establecer las propiedades CallbackDebugBehavior mediante programación, puede ser fácil olvidarse de deshabilitar IncludeExceptionDetailInFaults en la implementación.

Debido a los problemas de seguridad implicados, se recomienda encarecidamente que:

  • Utilice un archivo de configuración de la aplicación para establecer el valor de la propiedad IncludeExceptionDetailInFaults en true.
  • lo haga solamente en escenarios de depuración controlados.

El ejemplo de código siguiente muestra un archivo de configuración del cliente que indica a WCF que devuelva la información de excepción administrada de un objeto de devolución de llamada de cliente en mensajes SOAP.

Utilizar el comportamiento de ClientViaBehavior

Puede utilizar el comportamiento ClientViaBehavior para especificar el Identificador uniforme de recursos para el cual se debería crear el canal de transporte. Utilice este comportamiento cuando el destino de la red inmediato no es el procesador de impresión previsto del mensaje. Esto habilita conversaciones de varios saltos cuando la aplicación que realiza la llamada no conoce necesariamente el destino último o cuando el encabezado de destino Via no es una dirección.

Consulte también

Conceptos

Especificación del comportamiento en tiempo de ejecución del servicio