Partager via


Gestion des erreurs HTTP Web WCF

La gestion des erreurs Web HTTP de Windows Communication Foundation (WCF) permet de renvoyer des erreurs des services Web HTTP WCF qui spécifient un code d’état HTTP et fournissent des détails d’erreur dans le même format que l’opération (par exemple, XML ou JSON).

Gestion des erreurs HTTP Web WCF

La WebFaultException classe définit un constructeur qui vous permet de spécifier un code d’état HTTP. Ce code d’état est ensuite retourné au client. Une version générique de la WebFaultException classe WebFaultException<T> vous permet de retourner un type défini par l’utilisateur qui contient des informations sur l’erreur qui s’est produite. Cet objet personnalisé est sérialisé à l’aide du format spécifié par l’opération et retourné au client. L’exemple suivant montre comment retourner un code d’état HTTP.

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

L’exemple suivant montre comment retourner un code d’état HTTP et des informations supplémentaires dans un type défini par l’utilisateur. MyErrorDetail est un type défini par l’utilisateur qui contient des informations supplémentaires sur l’erreur qui s’est produite.

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

Le code précédent retourne une réponse HTTP avec le code d’état interdit et un corps qui contient une instance de l’objet MyErrorDetails . Le format de l’objet MyErrorDetails est déterminé par :

Pour plus d’informations sur la façon dont ces valeurs affectent la mise en forme de l’opération, consultez la mise en forme HTTP web WCF.

WebFaultException est un FaultException et peut donc être utilisé comme modèle de programmation d’exceptions d’erreurs pour les services qui exposent des points de terminaison SOAP ainsi que des points de terminaison HTTP.

Voir aussi