Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los errores detectados por una aplicación WCF pertenecen a uno de los tres grupos:
Errores de comunicación
Errores de proxy/canal
Errores de aplicación
Los errores de comunicación se producen cuando una red no está disponible, un cliente usa una dirección incorrecta o el host de servicio no escucha los mensajes entrantes. Los errores de este tipo se devuelven al cliente como clases derivadas de CommunicationException o CommunicationException.
Los errores de proxy o canal son errores que se producen dentro del propio canal o proxy. Los errores de este tipo incluyen: intentar usar un proxy o canal que se ha cerrado, existe una discrepancia de contrato entre el cliente y el servicio, o el servicio rechaza las credenciales del cliente. Hay muchos tipos diferentes de errores en esta categoría, demasiados para enumerar aquí. Los errores de este tipo se devuelven al cliente as-is (no se realiza ninguna transformación en los objetos de excepción).
Los errores de aplicación se producen durante la ejecución de una operación de servicio. Los errores de este tipo se envían al cliente como FaultException o FaultException<TDetail>.
El control de errores en WCF se realiza mediante uno o varios de los siguientes:
Controlar directamente la excepción producida, que solo se lleva a cabo para errores de comunicación y de proxy o canal.
Usar contratos de errores
Implementación de la IErrorHandler interfaz
Controlar eventos ServiceHost
Contrato de error
Los contratos de error permiten definir los errores que pueden producirse durante la operación del servicio de forma independiente de la plataforma. De forma predeterminada, todas las excepciones producidas desde dentro de una operación de servicio se devolverán al cliente como un FaultException objeto . El FaultException objeto contendrá muy poca información. Puede controlar la información enviada al cliente mediante la definición de un contrato de error y la devolución del error como clase FaultException<TDetail>. Para obtener más información, vea Especificar y controlar errores en contratos y servicios.
IErrorHandler
La IErrorHandler interfaz le permite tener más control sobre cómo responde la aplicación WCF a los errores. Proporciona control total sobre el mensaje de error que se devuelve al cliente y le permite realizar un procesamiento de errores personalizado, como el registro. Para obtener más información, consulte IErrorHandler y Extensión de control a control de errores y creación de informes
Eventos de ServiceHost
La ServiceHost clase hospeda los servicios y define varios eventos que pueden ser necesarios para controlar errores. Por ejemplo:
Para obtener más información, consulte: ServiceHost