WsSendMessage 函式 (webservices.h)

使用序列化在通道上傳送訊息,以寫入本文專案。

語法

HRESULT WsSendMessage(
  [in]           WS_CHANNEL                   *channel,
  [in]           WS_MESSAGE                   *message,
  [in]           const WS_MESSAGE_DESCRIPTION *messageDescription,
  [in]           WS_WRITE_OPTION              writeOption,
                 const void                   *bodyValue,
  [in]           ULONG                        bodyValueSize,
  [in, optional] const WS_ASYNC_CONTEXT       *asyncContext,
  [in, optional] WS_ERROR                     *error
);

參數

[in] channel

要傳送訊息的通道。

[in] message

要用於傳送的訊息物件。

訊息物件必須位於 WS_MESSAGE_STATE_EMPTYWS_MESSAGE_STATE_INITIALIZED中。

[in] messageDescription

WS_MESSAGE_DESCRIPTION的動作欄位會當做訊息的動作標頭使用。 如果不需要任何動作,此欄位可能是 Null

WS_MESSAGE_DESCRIPTION的 bodyElementDescription 欄位是用來序列化訊息本文。 如果不需要 body 元素,此欄位可能是 Null 。 如需 bodyElementDescription 如何用來序列化值的資訊,請參閱 WsWriteBody

[in] writeOption

本文專案是否為必要專案,以及如何配置值。 只有當需要 body 元素時,才會使用此專案。 如需詳細資訊,請參閱 WS_WRITE_OPTIONWsWriteBody

bodyValue

要序列化訊息本文中的值。

[in] bodyValueSize

要序列化之值的大小,以位元組為單位。

[in, optional] asyncContext

如何以非同步方式叫用函式的資訊,如果以同步方式叫用,則為 Null

[in, optional] error

指定函式失敗時應該儲存其他錯誤資訊的位置。

傳回值

此函式可以傳回其中一個值。

傳回碼 描述
WS_S_ASYNC
非同步作業仍然擱置中。
WS_E_OPERATION_ABORTED
作業已中止。
WS_E_INVALID_OPERATION
由於 物件的目前狀態,不允許此作業。
WS_E_ENDPOINT_NOT_FOUND
遠端端點不存在或無法找到。
WS_E_ENDPOINT_ACCESS_DENIED
遠端端點拒絕存取。
WS_E_ENDPOINT_DISCONNECTED
已終止與遠端端點的連線。
WS_E_ENDPOINT_FAILURE
遠端端點無法處理要求。
WS_E_ENDPOINT_NOT_AVAILABLE
遠端端點目前不在此位置的服務中。
WS_E_ENDPOINT_TOO_BUSY
遠端端點因為多載而無法處理要求。
WS_E_ENDPOINT_UNREACHABLE
無法連線到遠端端點。
WS_E_INVALID_ENDPOINT_URL
端點位址 URL 無效。
WS_E_INVALID_FORMAT
輸入資料的格式不正確,或沒有預期的值。
WS_E_OPERATION_TIMED_OUT
作業未在配置的時間內完成。
WS_E_PROXY_ACCESS_DENIED
HTTP Proxy 伺服器拒絕存取。
WS_E_PROXY_FAILURE
HTTP Proxy 伺服器無法處理要求。
WS_E_QUOTA_EXCEEDED
超過配額。
WS_E_SECURITY_VERIFICATION_FAILURE
已接收資料的安全性驗證未成功。
WS_E_SECURITY_SYSTEM_FAILURE
Windows Web 服務架構中的安全性作業失敗。
WS_E_SECURITY_TOKEN_EXPIRED
伺服器因為安全性權杖已過期而遭到拒絕。
WS_E_PROXY_REQUIRES_BASIC_AUTH
HTTP Proxy 伺服器需要 HTTP 驗證配置 'basic'。
WS_E_PROXY_REQUIRES_DIGEST_AUTH
HTTP Proxy 伺服器需要 HTTP 驗證配置 'digest'。
WS_E_PROXY_REQUIRES_NEGOTIATE_AUTH
HTTP Proxy 伺服器需要 HTTP 驗證配置 'negotiate'。
WS_E_PROXY_REQUIRES_NTLM_AUTH
HTTP Proxy 伺服器需要 HTTP 驗證配置 'NTLM'。
WS_E_SERVER_REQUIRES_BASIC_AUTH
遠端端點需要 HTTP 驗證配置 'basic'。
WS_E_SERVER_REQUIRES_DIGEST_AUTH
遠端端點需要 HTTP 驗證配置 'digest'。
WS_E_SERVER_REQUIRES_NEGOTIATE_AUTH
遠端端點需要 HTTP 驗證配置 'negotiate'。
WS_E_SERVER_REQUIRES_NTLM_AUTH
遠端端點需要 HTTP 驗證配置 'NTLM'。
CERT_E_EXPIRED
根據目前系統時鐘或已簽署檔案中的時間戳記進行驗證時,必要的憑證不在其有效期間內。
CERT_E_CN_NO_MATCH
憑證 CN 名稱不符合傳遞的值。
CERT_E_UNTRUSTEDROOT
已處理的憑證鏈結,但在信任提供者不信任的根憑證中終止。
CERT_E_WRONG_USAGE
此憑證不適用於要求的使用方式。
CRYPT_E_REVOCATION_OFFLINE
因為伺服器已離線,所以撤銷功能無法核對撤銷狀況。
E_OUTOFMEMORY
記憶體不足。
E_INVALIDARG
一或多個引數無效。
其他錯誤
此函式可能會傳回上述未列出的其他錯誤。

備註

若要包含訊息的自訂標頭,請先使用WS_BLANK_MESSAGE初始化WsInitializeMessage訊息,然後在呼叫此函式之前,使用WsAddCustomHeader新增標頭。

規格需求

   
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 webservices.h
程式庫 WebServices.lib
Dll WebServices.dll