WsReadMessageStart 函式 (webservices.h)
從通道讀取下一個訊息的標頭,並準備讀取本文元素。
語法
HRESULT WsReadMessageStart(
[in] WS_CHANNEL *channel,
[in] WS_MESSAGE *message,
[in, optional] const WS_ASYNC_CONTEXT *asyncContext,
[in, optional] WS_ERROR *error
);
參數
[in] channel
要接收來源的通道。
[in] message
要接收的訊息。
[in, optional] asyncContext
如何以異步方式叫用函式的資訊,如果以同步方式叫用,則為 NULL 。
[in, optional] error
指定函式失敗時應儲存其他錯誤資訊的位置。
傳回值
此函式可以傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
已成功收到訊息的開始。 |
|
通道上沒有其他可用的訊息。 |
|
異步操作仍在擱置中。 |
|
作業已中止。 |
|
由於物件的目前狀態,不允許此作業。 |
|
遠端端點不存在或無法找到。 |
|
遠端端點拒絕存取。 |
|
與遠端端點的連線已終止。 |
|
遠端端點無法處理要求。 |
|
遠端端端點目前不在此位置的服務中。 |
|
遠端端點因為多載而無法處理要求。 |
|
無法連線到遠端端端點。 |
|
端點位址 URL 無效。 |
|
輸入數據不是預期的格式,或沒有預期的值。 |
|
作業未在配置的時間內完成。 |
|
HTTP Proxy 伺服器拒絕存取。 |
|
HTTP Proxy 伺服器無法處理要求。 |
|
超過配額。 |
|
已接收數據的安全性驗證未成功。 |
|
Windows Web 服務架構中的安全性作業失敗。 |
|
伺服器因為安全性令牌已過期而遭到拒絕。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'basic'。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'digest'。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'negotiate'。 |
|
HTTP Proxy 伺服器需要 HTTP 驗證配置 'NTLM'。 |
|
遠端端端點需要 HTTP 驗證配置 'basic'。 |
|
遠端端端點需要 HTTP 驗證配置 'digest'。 |
|
遠端端點需要 HTTP 驗證配置 'negotiate'。 |
|
遠端端端點需要 HTTP 驗證配置 'NTLM'。 |
|
根據目前系統時鐘或已簽署檔案中的時間戳進行驗證時,必要的憑證不在其有效期間內。 |
|
憑證 CN 名稱不符合傳遞的值。 |
|
憑證鏈結已處理,但在信任提供者不信任的跟證書中終止。 |
|
此憑證不適用於要求的使用方式。 |
|
因為伺服器已離線,所以撤銷功能無法核對撤銷狀況。 |
|
記憶體不足。 |
|
一或多個引數無效。 |
|
此函式可能會傳回上面未列出的其他錯誤。 |
備註
這會從通道讀取下一個訊息的開頭,包括訊息的標頭。
此函式類似於 WsReadEnvelopeStart ,但會與通道搭配使用。
成功時,標頭會儲存在訊息中,而且可以使用隨機存取方式存取 (,例如使用 WsGetHeader) 。
訊息必須處於 WS_MESSAGE_STATE_EMPTY 狀態。 成功時,訊息會轉換為 WS_MESSAGE_STATE_READING 狀態。
若要還原串行化訊息本文的專案,請使用 WsReadBody。 若要直接從訊息的 XML 讀取器讀取,請先使用 WS_MESSAGE_PROPERTY_BODY_READER 屬性取得讀取器。
如果通道輸入在串流處理 (WS_STREAMED_INPUT_TRANSFER_MODE) ,則必須呼叫 WsFillBody ,才能實際讀取本文的下一個部分。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | webservices.h |
程式庫 | WebServices.lib |
Dll | WebServices.dll |