Controlar errores de web HTTP de WCF

El control de errores web HTTP de Windows Communication Foundation (WCF) permite devolver errores de los servicios web HTTP de WCF que especifican un código de estado HTTP, así como devolver detalles de error mediante el mismo formato que la operación (por ejemplo, XML o JSON).

Controlar errores de web HTTP de WCF

La clase WebFaultException define un constructor que le permite especificar un código de estado HTTP. A continuación, este código de estado se devuelve al cliente. Una versión genérica de la clase WebFaultException, WebFaultException le permite devolver un tipo definido por el usuario que contiene información sobre el error que se ha producido. Este objeto personalizado se serializa mediante el formato especificado por la operación y se devuelve al cliente. En el siguiente ejemplo, se muestra cómo devolver un código de estado HTTP.

Public string Operation1()
{   // Operation logic
   // ...
   Throw new WebFaultException(HttpStatusCode.Forbidden);
}

En el siguiente ejemplo, se muestra cómo devolver un código de estado HTTP, así como información adicional en un tipo definido por el usuario. MyErrorDetail es un tipo definido por el usuario que contiene información adicional sobre el error que se ha producido.

Public string Operation2()
   // Operation logic
   // ...   MyErrorDetail detail = new MyErrorDetail
   {
      Message = “Error Message”,
      ErrorCode = 123,
   }
   throw new WebFaultException<MyErrorDetail>(detail, HttpStatusCode.Forbidden);
}

El código anterior devuelve una respuesta HTTP con el código de estado prohibido y un cuerpo que contiene una instancia del objeto MyErrorDetails. El formato del objeto MyErrorDetails se determina mediante los elementos siguientes:

Para obtener más información sobre cómo afectan estos valores al formato de la operación, vea Formato de web HTTP de WCF.

WebFaultException es una clase FaultException y, por lo tanto, se puede usar como modelo de programación de excepción de errores para los servicios que exponen extremos de SOAP y extremos web HTTP. Puesto que HTTP no define un documento de metadatos para expresar el comportamiento del error, la característica WebFaultException es una característica por parte del servidor y no se aplica al modelo de programación de proxy de cliente de WCF.

Vea también

Conceptos

Formato de web HTTP de WCF
Definición y especificación de errores
Administración de excepciones y errores
Envío y recepción de errores

Otros recursos

Modelo de programación de web HTTP de WCF