发现版本控制

本主题简要概述了一些新增发现功能的实现, 还概述了如何选择要使用的发现版本。

发现版本控制

发现功能包括对 WS_Discovery 协议的三个版本的支持。 使用发现 API,您可以选择要使用的协议版本。 本文档简要介绍与版本控制相关的设置。

下面的发现类现在具有 DiscoveryVersion 属性,并在其构造函数中采用 DiscoveryVersion 参数:

DiscoveryVersion.WSDiscoveryApril2005

提供 WSDiscoveryApril2005 作为构造函数参数可让实现使用 April2005 版本的 WS-Discovery 协议。 此版本对应于 WS-Discovery 协议规范的已发布版本。 此版本应当用于与使用 April2005 版 WS-Discovery 的旧版应用程序进行互操作。

DiscoveryVersion.WSDiscovery11

API 使用的默认发现版本是 WSDiscovery11。 这是 WS-Discovery 协议的当前标准化版本。

DiscoveryVersion.WSDiscoveryCD1

作为构造函数参数提供 WSDiscoveryCD1 可使实现使用 WS-Discovery 协议的委员会草案第 1 版。 此协议版本应当用于与运行 CD1 版 WS-Discovery 协议的实现进行互操作。

支持单一服务主机上不同发现版本的多个 UDP 发现终结点

您可能希望在单一服务主机上对不同发现版本公开多个 UDP 发现终结点。 为此,必须为每个 UDP 发现终结点指定唯一的地址。 以下示例演示如何执行此操作。

UdpDiscoveryEndpoint newVersionUdpEndpoint = new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscovery11);
UdpDiscoveryEndpoint oldVersionUdpEndpoint = new UdpDiscoveryEndpoint(DiscoveryVersion.WSDiscoveryApril2005);

newVersionUdpEndpoint.Address = new EndpointAddress(newVersionUdpEndpoint.Address.Uri.ToString() + "/version11");
oldVersionUdpEndpoint.Address = new EndpointAddress(oldVersionUdpEndpoint.Address.Uri.ToString() + "/versionApril2005");

serviceHost.AddServiceEndpoint(newVersionUdpEndpoint);
serviceHost.AddServiceEndpoint(oldVersionUdpEndpoint);