消息(Windows Web 服务)

消息是指封装传输或接收的数据的对象。 消息的结构由 SOAP 定义,并包括一组标头和正文。 标头始终在内存中缓冲,但正文是使用流式处理 API 读取和写入的。

Diagram showing a message with the header being buffered and the body being streamed.

消息具有一组属性,可用于指定一些可选设置以控制消息的行为,并提供一种方法来检索有关接收的消息的其他信息(如安全信息)。 有关消息属性的完整列表,请参阅 WS_MESSAGE_PROPERTY_ID

消息将寻址到特定的终结点地址

WS_FAULT 是一种特殊的消息内容,用于表示从远程终结点返回的失败。

消息在传输之前将接受编码,将 XML 转换为线性线格式。

有关消息的详细信息,请参阅通道层概述主题。

以下示例演示了如何在 WWSAPI 中使用消息。

示例 说明
CustomHeaderExample 演示了如何使用自定义消息标头。
MessageEncodingExample 演示了消息的编码和解码。
ForwardMessageExample 演示了如何转发消息。

 

以下 API 元素用于消息。

回调 说明
WS_MESSAGE_DONE_CALLBACK 通知调用方消息已完成以下内容的使用:提供给 WsReadEnvelopeStart 函数的 WS_XML_READER 结构,或者提供给 WsWriteEnvelopeStart 函数的 WS_XML_WRITER 结构。

 

枚举 说明
WS_ADDRESSING_VERSION 用于寻址标头的规范的版本。
WS_ENVELOPE_VERSION 用于信封结构的规范的版本。
WS_HEADER_ATTRIBUTES 一组标志,表示 SOAP mustUnderstand 和标头的中继属性。
WS_HEADER_TYPE 标头的类型。
WS_MESSAGE_INITIALIZATION 指定 WsInitializeMessage 应添加到消息的标头。
WS_MESSAGE_PROPERTY_ID 每个消息属性的 ID。
WS_MESSAGE_STATE 消息的状态。

 

函数 说明
WsAddressMessage 向消息分配目标地址。
WsCheckMustUnderstandHeaders 验证接收方是否适当地理解指定的标头。
WsCreateMessage 创建 WS_MESSAGE 对象的实例。
WsCreateMessageForChannel 创建一条消息,该消息适用于特定通道。
WsFillBody 确保消息中有足够的可用字节数进行读取。
WsFlushBody 刷新已写入的所有累积的消息正文数据。
WsFreeMessage 释放与消息关联的内存资源。
WsGetCustomHeader 查找由应用程序定义的消息标头并将其反序列化。
WsGetHeader 查找消息中的特定标准标头并将其反序列化。
WsGetHeaderAttributes 使用读取器所在的标头元素中的 WS_HEADER_ATTRIBUTES 填充 ULONG 参数。
WsGetMessageProperty 检索指定的消息对象属性。
WsInitializeMessage 初始化消息的标头,以准备处理。
WsMarkHeaderAsUnderstood 将标头标记为已被应用程序所理解。
WsReadBody 将消息的 XML 读取器中的值反序列化。
WsReadEnvelopeEnd 读取消息的结束元素。
WsReadEnvelopeStart 读取消息的标头并准备读取正文元素。
WsRemoveCustomHeader 从消息中删除自定义标头。
WsRemoveHeader 从消息中删除标准的 WS_HEADER_TYPE 对象。
WsResetMessage 将消息状态设置回 WS_MESSAGE_STATE_EMPTY
WsSetHeader 在消息中添加或替换指定的标准标头。
WsWriteBody 在消息正文中写入值。
WsWriteEnvelopeEnd 读取消息的结束元素。
WsWriteEnvelopeStart 写入消息的开头,包括消息的当前标头集,并准备写入正文元素。

 

句柄 说明
WS_MESSAGE 用于引用消息对象的不透明类型。

 

结构 说明
WS_FAULT 消息正文中携带的一个错误值,指示处理失败。
WS_FAULT_CODE 表示错误代码。
WS_FAULT_REASON 包含错误的说明。
WS_MESSAGE_PROPERTIES 指定一组 WS_MESSAGE_PROPERTY 结构。
WS_MESSAGE_PROPERTY 指定特定于消息的设置。