Gestion des erreurs qui se produisent lors du traitement d'un en-tête SOAP

Cette rubrique est spécifique à une technologie existante. Les services Web XML et les clients du service Web XML doivent à présent être créés à l'aide de Windows Communication Foundation.

Lorsqu'un service Web détecte une erreur spécifique au traitement d'un en-tête SOAP, une SoapHeaderException doit être levée. Grâce à cette exception, la classe permet aux services Web de mettre en forme la réponse correctement. Voici un exemple d'appel :

throw new SoapHeaderException("invalid user",SoapException.ClientFaultCode); 
Throw New SoapHeaderException("invalid user", SoapException.ClientFaultCode)

Si le client est créé à l'aide du .NET Framework, il recevra la SoapHeaderException avec son contenu, y compris la propriété InnerException, placée dans la propriété Message. La propriété InnerException de la SoapHeaderException interceptée par le client aura la valeur null. Il s'agit d'un modèle de programmation pris en charge par le .NET Framework, car l'exception est envoyée via le réseau dans un élément XML <Fault> SOAP, comme stipulé par la spécification SOAP. Pour plus d'informations sur les exceptions, consultez Gestion et levée d'exceptions dans les services Web XML.

Remarque : le .NET Framework version 1.0 inclut la propriété SoapHeaderAttribute.Required qui permet à un service Web de demander qu'un client envoie un en-tête SOAP spécifique lorsque la propriété a la valeur true. ASP.NET indique que l'en-tête SOAP est requis dans un document WSDL généré en affectant à l'attribut wsdl:required la valeur "true" sur l'élément soap:header. Les clients .NET Framework du service Web construits sur la base du document WSDL reçoivent une SoapHeaderException s'ils n'envoient pas l'en-tête SOAP requis ; les autres clients reçoivent une erreur SOAP. Pour permettre l'interaction avec d'autres implémentations SOAP, cette fonctionnalité est supprimée dans les versions ultérieures.

La propriété Required est obsolète dans la version 1.1 et l'attribut wsdl:required d'un élément soap:header dans un document WSDL est ignoré par l'outil Web Services Description Language (Wsdl.exe). Étant donné qu'un en-tête SOAP ne peut plus être requis, un service Web doit vérifier que le champ ou la propriété représentant l'en-tête SOAP n'a pas la valeur null avant d'y accéder.

Voir aussi

Référence

SoapHeaderException
SoapHeader
SoapHeaderAttribute
SoapUnknownHeader

Concepts

Gestion et levée d'exceptions dans les services Web XML
Création de clients de service Web XML

Autres ressources

Services Web XML utilisant ASP.NET