终结点地址

终结点地址表示网络上服务地址。 打开 通道时,通过调用 WsOpenChannel 函数,需要提供要与之通信的服务的终结点地址,并指定要打开的通道。

终结点地址包括:

  • URL
  • 一组标头 (可选)
  • 一组扩展 (可选)
  • 表示服务的安全标识 的可选标识

处理邮件时,URL 将成为消息的“To”标头。 属于终结点地址的任何标头也会添加到消息中。

显示要添加到消息的终结点地址标头的关系图。

通道使用传递到 WsOpenChannel的 WS_ENDPOINT_ADDRESS 结构自动处理发送的任何消息。 还可以使用 WsAddressMessage 函数替代此默认行为。

当WS_ENDPOINT_ADDRESS作为参数传递时,WsOpenChannelWsOpenServiceProxy 函数会在内存中创建 WS_ENDPOINT_ADDRESS 参数的副本,其大小限制为 65536 字节。 WsAddressMessage 没有此限制,因为它不需要创建 WS_ENDPOINT_ADDRESS 参数的副本。

WS_ENDPOINT_ADDRESS扩展字段中指定的扩展不用于处理消息,而是一种扩展性机制,可用于 (提供其他信息,例如,有关服务的元数据) 。 可以使用 WsReadEndpointAddressExtension 函数读取常见扩展。

例如,终结点地址的可选标识字段可以包括运行服务的计算机的 DNS 名称,或运行该服务的 Windows 帐户的 UPN。 标识字段不用于对消息进行寻址,但可用于获取服务的安全令牌 (例如,用于获取目标 UPN) 的 Kerberos 票证,以及验证服务答复 (的标识,例如,用于在 SSL) 期间返回的服务证书上进行名称检查的 DNS 标识。

可以使用序列化来读取和写入终结点地址,以及来自 WS_TYPE的 WS_ENDPOINT_ADDRESS_TYPE 枚举值。 请注意,若要序列化终结点地址,必须知道 WS_ADDRESSING_VERSION枚举中指定的 用于寻址标头的规范版本。