WsSendFaultMessageForError-Funktion (webservices.h)

Sendet eine Fehlermeldung, die ein WS_ERROR-Objekt enthält.

Syntax

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
);

Parameter

[in] channel

Der Kanal, auf dem die Nachricht gesendet werden soll.

[in] replyMessage

Ein Nachrichtenobjekt, das zum Senden der Antwortnachricht verwendet werden soll.

Das Nachrichtenobjekt sollte sich in WS_MESSAGE_STATE_EMPTY oder WS_MESSAGE_STATE_INITIALIZED. Wenn eine initialisierte Nachricht bereitgestellt wird, sollte sie mit WS_FAULT_MESSAGE initialisiert werden.

[in] faultError

Das Fehlerobjekt, das zum Erstellen des Fehlers verwendet werden soll.

[in] faultErrorCode

Der Fehlercode, der dem Fehler zugeordnet ist. Dies kann kein Erfolgscode sein.

Dieser Fehlercode ist nie direkt in der Fehlermeldung enthalten, sondern wird stattdessen als Fallbackmechanismus zum Erstellen einer Fehlerzeichenfolge verwendet, falls das WS_ERROR-Objekt keine Fehlerzeichenfolgen enthält.

[in] faultDisclosure

Steuert, wie viele der Fehlerinformationen in der Fehlermeldung enthalten sind.

[in] requestMessage

Die Anforderungsnachricht. Dies wird verwendet, um Korrelationsinformationen abzurufen, die beim Formulieren der Antwortnachricht verwendet werden.

Die Nachricht kann sich in einem beliebigen Zustand befinden, aber WS_MESSAGE_STATE_EMPTY.

[in, optional] asyncContext

Informationen zum asynchronen Aufrufen der Funktion oder NULL beim synchronen Aufruf.

[in, optional] error

Gibt an, wo zusätzliche Fehlerinformationen gespeichert werden sollen, wenn die Funktion fehlschlägt.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
WS_S_ASYNC
Der asynchrone Vorgang steht noch aus.
WS_E_OPERATION_ABORTED
Der Vorgang wurde abgebrochen.
WS_E_INVALID_OPERATION
Der Vorgang ist aufgrund des aktuellen Zustands des Objekts nicht zulässig.
WS_E_ENDPOINT_DISCONNECTED
Die Verbindung mit dem Remoteendpunkt wurde beendet.
WS_E_INVALID_FORMAT
Die Eingabedaten hatten nicht das erwartete Format oder hatten nicht den erwarteten Wert.
WS_E_OPERATION_TIMED_OUT
Der Vorgang wurde innerhalb der zugewiesenen Zeit nicht abgeschlossen.
WS_E_QUOTA_EXCEEDED
Ein Kontingent wurde überschritten.
WS_E_SECURITY_VERIFICATION_FAILURE
Die Sicherheitsüberprüfung für die empfangenen Daten war nicht erfolgreich.
WS_E_SECURITY_SYSTEM_FAILURE
Ein Sicherheitsvorgang ist im Windows Web Services-Framework fehlgeschlagen.
E_OUTOFMEMORY
Der Arbeitsspeicher ist nicht mehr vorhanden.
E_INVALIDARG
Mindestens ein Argument ist ungültig.
Andere Fehler
Diese Funktion gibt möglicherweise andere Fehler zurück, die oben nicht aufgeführt sind.

Hinweise

Die WS_FAULT , die im Nachrichtentext gesendet wird, wird mit den gleichen Regeln erstellt, die von WsCreateFaultFromError definiert sind.

Der Wert der für die Antwortnachricht verwendeten WS_ACTION_HEADER wird wie folgt berechnet:

  • Wenn der WS_CHANNEL_PROPERTY_ADDRESSING_VERSION des Kanals WS_ADDRESSING_VERSION_TRANSPORT ist, ist keine Aktion in der Nachricht enthalten, da die Adressierungsversion keinen Aktionswert für Fehler zulässt.
  • Wenn das Error-Objekt eine Aktionszeichenfolge enthält (die Länge der von WS_FAULT_ERROR_PROPERTY_ACTION zurückgegebenen Zeichenfolge ist größer als 0 (null), wird die Aktionszeichenfolge verwendet.
  • Wenn das Fehlerobjekt keine Aktion enthält, wird ein Standardaktionswert angegeben.
Wenn das Fehlerobjekt einen Header enthält, der zum Beschreiben des Fehlers verwendet wird, wie durch WS_FAULT_ERROR_PROPERTY_HEADER angegeben, wird der Header den Headern der Fehlermeldung hinzugefügt.

Die Fehlermeldung enthält Korrelationsinformationen entsprechend der WS_ADDRESSING_VERSION. Weitere Informationen zum Korrelieren von Anforderungsantwortnachrichten finden Sie unter Übersicht über die Kanalebene .

Wenn Sie einen Fehler ohne ein WS_ERROR-Objekt senden, verwenden Sie WsSendReplyMessage.

Um der Nachricht benutzerdefinierte Header hinzuzufügen, initialisieren Sie die Nachricht WsInitializeMessage mit WS_FAULT_MESSAGE und fügen Sie dann die Header mithilfe von WsAddCustomHeader hinzu, bevor Sie diese Funktion aufrufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile webservices.h
Bibliothek WebServices.lib
DLL WebServices.dll