Partager via


Gestion des erreurs HTTP Web WCF

La gestion des erreurs HTTP Web Windows Communication Foundation (WCF) vous permet de retourner des erreurs provenant des services HTTP Web WCF qui spécifient un code d'état HTTP et retournent les détails d'une erreur en utilisant le même format que l'opération (par exemple, XML ou JSON).

Gestion des erreurs HTTP Web WCF

La classe WebFaultException définit un constructeur qui vous permet de spécifier un code d'état HTTP. Ce code d'état est alors retourné au client. Une version générique de la classe WebFaultException, WebFaultException<T>, vous permet de retourner un type défini par l'utilisateur contenant 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 indique 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 une information supplémentaire dans un type défini par l'utilisateur. MyErrorDetail est un type défini par l'utilisateur qui contient des informations supplémentaires à propos de 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 Mise en forme HTTP web WCF.

WebFaultException est un FaultException et par conséquent peut être utilisé comme le modèle de programmation d'exception d'erreur pour les services qui exposent des points de terminaison SOAP, ainsi que des points de terminaison HTTP Web.

Voir aussi