Partilhar via


Tratamento de erros HTTP da Web WCF

O tratamento de erros HTTP da Web do Windows Communication Foundation (WCF) permite que você retorne erros de serviços HTTP da 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 da Web WCF

A WebFaultException classe define um construtor que permite especificar um código de status HTTP. Esse código de status é então retornado ao cliente. Uma versão genérica da WebFaultException classe, WebFaultException<T> permite que você retorne um tipo definido pelo usuário que contém informações sobre o erro que ocorreu. Este 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 adicionais 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 MyErrorDetails objeto. O formato do MyErrorDetails objeto é determinado por:

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

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 da Web.

Consulte também