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
関数が失敗した場合に追加のエラー情報を格納する場所を指定します。
戻り値
この関数は、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
非同期操作はまだ保留中です。 |
|
操作が中止されました。 |
|
オブジェクトの現在の状態のため、操作は許可されません。 |
|
リモート エンドポイントとの接続が終了しました。 |
|
入力データの形式が正しくないか、予期した値が指定されていませんでした。 |
|
割り当てられた時間内に操作が完了しませんでした。 |
|
クォータを超えました。 |
|
受信したデータのセキュリティ検証が成功しなかった。 |
|
Windows Web Services フレームワークでセキュリティ操作が失敗しました。 |
|
メモリ不足。 |
|
1 つ以上の引数が無効です。 |
|
この関数は、上記以外のエラーを返す場合があります。 |
解説
メッセージの本文で送信される WS_FAULT は、 WsCreateFaultFromError で定義されているのと同じ規則を使用して構築されます。
応答メッセージに使用 されるWS_ACTION_HEADER の値は、次のように計算されます。
- チャネルの WS_CHANNEL_PROPERTY_ADDRESSING_VERSION が WS_ADDRESSING_VERSION_TRANSPORTされている場合、アドレス指定バージョンではエラーのアクション値が許可されないため、メッセージにアクションは含まれません。
- error オブジェクトにアクション文字列 ( WS_FAULT_ERROR_PROPERTY_ACTION によって返される文字列の長さが 0 より大きい) が含まれている場合は、アクション文字列が使用されます。
- エラー オブジェクトにアクションが含まれていない場合は、既定のアクション値が指定されます。
エラー メッセージには、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 |