Tratamento de erros HTTP Web do WCF

O tratamento de erros HTTP Web do Windows Communication Foundation (WCF) permite que você retorne erros de serviços HTTP Web do WCF que especificam um código de status HTTP e retornam detalhes do erro usando o mesmo formato da operação (por exemplo, XML ou JSON).

Tratamento de erros HTTP Web do WCF

A classe WebFaultException define um construtor que permite especificar um código de status HTTP. Esse código de status é retornado ao cliente. Uma versão genérica da classe WebFaultException, WebFaultException<T> permite que você retorne um tipo definido pelo usuário que contém informações sobre o erro que ocorreu. Esse objeto personalizado é serializado usando o formato especificado pela operação e retornado ao cliente. O exemplo a seguir mostra como retornar um código de status HTTP.

public string Operation1()
{
    // Operation logic  
   // ...
   throw new WebFaultException(HttpStatusCode.Forbidden);
}  

O exemplo a seguir mostra como retornar um código de status HTTP e informações extras em um tipo definido pelo usuário. MyErrorDetail é um tipo definido pelo usuário que contém informações extras sobre o erro que ocorreu.

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

O código anterior retorna uma resposta HTTP com o código de status Proibido e um corpo que contém uma instância do objeto MyErrorDetails. O formato do objeto MyErrorDetails é determinado por:

Para obter mais informações sobre como esses valores afetam a formatação da operação, consulte a Formatação HTTP Web do WCF.

WebFaultException é um FaultException e, portanto, pode ser usado como o modelo de programação de exceção de falha para serviços que expõem pontos de extremidade SOAP, bem como pontos de extremidade HTTP Web.

Confira também