次の方法で共有


WsSendFaultMessageForError 関数 (webservices.h)

WS_ERROR オブジェクトを指定して、エラー メッセージ 送信します。

構文

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

パラメーター

[in] channel

メッセージを送信するチャネル。

[in] replyMessage

応答メッセージの送信に使用するメッセージ オブジェクト。

メッセージ オブジェクトは 、WS_MESSAGE_STATE_EMPTY または WS_MESSAGE_STATE_INITIALIZEDに存在する必要があります。 初期化されたメッセージが指定されている場合は、 WS_FAULT_MESSAGEを使用して初期化されている必要があります。

[in] faultError

エラーの構築に使用する error オブジェクト。

[in] faultErrorCode

エラーに関連付けられているエラー コード。 これは成功コードにすることはできません。

このエラー コードは、エラー メッセージに直接含まれることはありませんが、代わりに、 WS_ERROR オブジェクトにエラー文字列が含まれていない場合に、エラー文字列を作成するためのフォールバック メカニズムとして使用されます。

[in] faultDisclosure

エラー メッセージに含まれるエラー情報の量を制御します。

[in] requestMessage

要求メッセージ。 これは、応答メッセージの作成に使用される相関関係情報を取得するために使用されます。

メッセージは、 WS_MESSAGE_STATE_EMPTY以外の任意の状態にすることができます。

[in, optional] asyncContext

関数を非同期的に呼び出す方法に関する情報。同期的に呼び出す場合は NULL

[in, optional] error

関数が失敗した場合に追加のエラー情報を格納する場所を指定します。

戻り値

この関数は、これらの値のいずれかを返すことができます。

リターン コード 説明
WS_S_ASYNC
非同期操作はまだ保留中です。
WS_E_OPERATION_ABORTED
操作が中止されました。
WS_E_INVALID_OPERATION
オブジェクトの現在の状態のため、操作は許可されません。
WS_E_ENDPOINT_DISCONNECTED
リモート エンドポイントとの接続が終了しました。
WS_E_INVALID_FORMAT
入力データの形式が正しくないか、予期した値が指定されていませんでした。
WS_E_OPERATION_TIMED_OUT
割り当てられた時間内に操作が完了しませんでした。
WS_E_QUOTA_EXCEEDED
クォータを超えました。
WS_E_SECURITY_VERIFICATION_FAILURE
受信したデータのセキュリティ検証が成功しなかった。
WS_E_SECURITY_SYSTEM_FAILURE
Windows Web Services フレームワークでセキュリティ操作が失敗しました。
E_OUTOFMEMORY
メモリ不足。
E_INVALIDARG
1 つ以上の引数が無効です。
その他のエラー
この関数は、上記以外のエラーを返す場合があります。

解説

メッセージの本文で送信される WS_FAULT は、 WsCreateFaultFromError で定義されているのと同じ規則を使用して構築されます。

応答メッセージに使用 されるWS_ACTION_HEADER の値は、次のように計算されます。

  • チャネルの WS_CHANNEL_PROPERTY_ADDRESSING_VERSIONWS_ADDRESSING_VERSION_TRANSPORTされている場合、アドレス指定バージョンではエラーのアクション値が許可されないため、メッセージにアクションは含まれません。
  • error オブジェクトにアクション文字列 ( WS_FAULT_ERROR_PROPERTY_ACTION によって返される文字列の長さが 0 より大きい) が含まれている場合は、アクション文字列が使用されます。
  • エラー オブジェクトにアクションが含まれていない場合は、既定のアクション値が指定されます。
エラー オブジェクトに、 WS_FAULT_ERROR_PROPERTY_HEADERで指定されたエラーを説明するために使用されるヘッダーが含まれている場合は、エラー メッセージのヘッダーにヘッダーが追加されます。

エラー メッセージには、WS_ADDRESSING_VERSIONに応じて関連付け情報が含 まれます。 要求応答メッセージの関連付けの詳細については、「 チャネル層の概要 」を参照してください。

WS_ERROR オブジェクトなしでエラーを送信する場合は、WsSendReplyMessage を使用します。

メッセージにカスタム ヘッダーを追加するには、WS_FAULT_MESSAGEを使用して メッセージ WsInitializeMessage初期化し、 この関数を呼び出す前に WsAddCustomHeader を使用してヘッダーを追加します。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー webservices.h
Library WebServices.lib
[DLL] WebServices.dll