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, 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 indique 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, contenant 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 :
la valeur du paramètre ResponseFormat de l'attribut WebGetAttribute ou WebInvokeAttribute spécifié sur l'opération de service ;
la valeur de la propriété AutomaticFormatSelectionEnabled ;
la valeur de la propriété Format en accédant à l'objet OutgoingWebResponseContext.
Pour plus d'informations sur le sujet suivant comment 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. Comme HTTP ne définit pas de document de métadonnées pour exprimer le comportement d'erreur, la fonctionnalité WebFaultException est une fonctionnalité côté serveur et ne s'applique pas au modèle de programmation du proxy client WCF.
Voir aussi
Concepts
Mise en forme HTTP Web WCF
Définition et spécification des erreurs
Gestion des exceptions et des erreurs
Envoi et réception des erreurs