Gestione degli errori HTTP Web WCF

La gestione degli errori HTTP Web di WCF (Windows Communication Foundation) consente di restituire errori da servizi HTTP Web WCF che specificano un codice di stato HTTP e restituiscono dettagli dell'errore utilizzando lo stesso formato dell'operazione (ad esempio, XML o JSON).

Gestione degli errori HTTP Web WCF

La classe WebFaultException definisce un costruttore che consente di specificare un codice di stato HTTP. Questo codice di stato viene quindi restituito al client. Versione generica della classe WebFaultException, WebFaultException<T> consente di restituire un tipo definito dall'utente che contiene informazioni sull'errore verificatosi. Questo oggetto personalizzato viene serializzato utilizzando il formato specificato dall'operazione e restituito al client. Nell'esempio riportato di seguito viene illustrato il modo in cui restituire un codice di stato HTTP.

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

Nell'esempio seguente viene illustrato come restituire un codice di stato HTTP e informazioni aggiuntive in un tipo definito dall'utente. MyErrorDetail è un tipo definito dall'utente che contiene informazioni aggiuntive sull'errore che si è verificato.

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

Il codice precedente restituisce una risposta HTTP con il codice di stato proibito e un corpo che contiene un'istanza dell'oggetto MyErrorDetails. Il formato dell'oggetto MyErrorDetails viene determinato dagli elementi indicati di seguito.

Per altre informazioni su come questi valori influiscono sulla formattazione dell'operazione, vedere Formattazione HTTP Web WCF.

WebFaultException è un'eccezione FaultException e pertanto può essere utilizzata come modello di programmazione di eccezione dell'errore per i servizi che espongono endpoint SOAP e HTTP Web.

Vedi anche