WsSendFaultMessageForError, fonction (webservices.h)

Envoie un message d’erreur en fonction d’un objet WS_ERROR .

Syntaxe

HRESULT WsSendFaultMessageForError(
  [in]           WS_CHANNEL             *channel,
  [in]           WS_MESSAGE             *replyMessage,
  [in]           WS_ERROR               *faultError,
  [in]           HRESULT                faultErrorCode,
  [in]           WS_FAULT_DISCLOSURE    faultDisclosure,
  [in]           WS_MESSAGE             *requestMessage,
  [in, optional] const WS_ASYNC_CONTEXT *asyncContext,
  [in, optional] WS_ERROR               *error
);

Paramètres

[in] channel

Canal sur lequel envoyer le message.

[in] replyMessage

Objet de message à utiliser pour envoyer le message de réponse.

L’objet message doit être dans WS_MESSAGE_STATE_EMPTY ou WS_MESSAGE_STATE_INITIALIZED. Si un message initialisé est fourni, il doit avoir été initialisé à l’aide de WS_FAULT_MESSAGE.

[in] faultError

Objet d’erreur à utiliser pour construire l’erreur.

[in] faultErrorCode

Code d’erreur associé à l’erreur. Il ne peut pas s’agir d’un code de réussite.

Ce code d’erreur n’est jamais inclus directement dans le message d’erreur, mais il est utilisé comme mécanisme de secours pour créer une chaîne d’erreur dans le cas où l’objet WS_ERROR ne contient pas de chaînes d’erreur.

[in] faultDisclosure

Contrôle la quantité d’informations d’erreur incluses dans le message d’erreur.

[in] requestMessage

Message de demande. Cela permet d’obtenir des informations de corrélation utilisées dans la formulation du message de réponse.

Le message peut être dans n’importe quel état , mais WS_MESSAGE_STATE_EMPTY.

[in, optional] asyncContext

Informations sur la façon d’appeler la fonction de manière asynchrone, ou NULL en cas d’appel synchrone.

[in, optional] error

Spécifie l’emplacement où des informations d’erreur supplémentaires doivent être stockées en cas d’échec de la fonction.

Valeur retournée

Cette fonction peut retourner l’une de ces valeurs.

Code de retour Description
WS_S_ASYNC
L’opération asynchrone est toujours en attente.
WS_E_OPERATION_ABORTED
L'opération a été abandonnée.
WS_E_INVALID_OPERATION
L’opération n’est pas autorisée en raison de l’état actuel de l’objet.
WS_E_ENDPOINT_DISCONNECTED
La connexion avec le point de terminaison distant a été interrompue.
WS_E_INVALID_FORMAT
Les données d’entrée n’étaient pas au format attendu ou n’avaient pas la valeur attendue.
WS_E_OPERATION_TIMED_OUT
L’opération ne s’est pas terminée dans le délai imparti.
WS_E_QUOTA_EXCEEDED
Un quota a été dépassé.
WS_E_SECURITY_VERIFICATION_FAILURE
La vérification de sécurité n’a pas réussi pour les données reçues.
WS_E_SECURITY_SYSTEM_FAILURE
Une opération de sécurité a échoué dans l’infrastructure des services Web Windows.
E_OUTOFMEMORY
Mémoire insuffisante.
E_INVALIDARG
Un ou plusieurs arguments ne sont pas valides.
Autres erreurs
Cette fonction peut retourner d’autres erreurs non répertoriées ci-dessus.

Remarques

Le WS_FAULT envoyé dans le corps du message est construit à l’aide des mêmes règles que celles définies par WsCreateFaultFromError.

La valeur de la WS_ACTION_HEADER utilisée pour le message de réponse est calculée comme suit :

  • Si le WS_CHANNEL_PROPERTY_ADDRESSING_VERSION du canal est WS_ADDRESSING_VERSION_TRANSPORT, aucune action n’est incluse dans le message, car la version d’adressage n’autorise pas de valeur d’action pour les erreurs.
  • Si l’objet error contient une chaîne d’action (la longueur de la chaîne retournée par WS_FAULT_ERROR_PROPERTY_ACTION est supérieure à zéro), la chaîne d’action est utilisée.
  • Si l’objet error ne contient pas d’action, une valeur d’action par défaut est fournie.
Si l’objet d’erreur contient un en-tête utilisé pour décrire l’erreur comme spécifié par WS_FAULT_ERROR_PROPERTY_HEADER, l’en-tête est ajouté aux en-têtes du message d’erreur.

Le message d’erreur inclut des informations de corrélation appropriées au WS_ADDRESSING_VERSION. Pour plus d’informations sur la corrélation des messages de réponse aux demandes, consultez Vue d’ensemble de la couche de canal.

Si vous envoyez une erreur sans objet WS_ERROR , utilisez WsSendReplyMessage.

Pour ajouter des en-têtes personnalisés au message, initialisez le message WsInitializeMessage avec WS_FAULT_MESSAGE , puis ajoutez les en-têtes à l’aide de WsAddCustomHeader avant d’appeler cette fonction.

Configuration requise

   
Client minimal pris en charge Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête webservices.h
Bibliothèque WebServices.lib
DLL WebServices.dll