向对等通道应用程序添加自定义解析程序

默认情况下,对等通道使用对等名称解析协议 (PNRP) 对等解析程序服务。 但由于网络策略或配置,可能需要实现自定义对等解析程序服务。 下面一节说明向对等通道应用程序中添加自定义对等解析程序服务的过程。

自定义对等解析程序

自定义对等解析程序服务是一种单一实例服务,它在字典中缓存网格 ID 和终结点地址,响应注册、注销并解析来自客户端的请求。 网格 ID 应是唯一的。 如果多个应用程序使用同一个解析程序,则它们必须选择不同的网格 ID 以避免冲突。

创建和配置自定义对等解析程序

自定义对等解析程序可实现静态主函数以创建给定 CustomPeerResolverService 类型的一个 ServiceHost。 主机还负责提供服务主机的基址,该基址必须在配置文件(通常名为 App.config)的应用程序设置中进行配置。

<appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress"
     value=" net.tcp://localhost/servicemodelsamples/peerResolverService" />
</appSettings>

自定义对等解析程序服务可实现 ICustomPeerResolver 约定,该约定公开 RegisterMeshId、UnregisterMeshId 和 ResolveMeshId 操作。 客户端向给定的操作发出同步请求,服务使用结果进行回复。

服务会公开一个单一终结点以便与使用配置文件定义的服务进行通信。 绑定使用可提供 TCP 通信的标准 NetTcpBinding 进行配置。

<services>
    <service 
       service="Microsoft.ServiceModel.Samples. CustomPeerResolverService">
       <!-- use base address provided by the host -->
       <endpoint address=""
            binding=" netTcpBinding "
             contract="Microsoft.ServiceModel.Samples. ICustomPeerResolver" />
    </service>
</services>

若要使远程计算机上的客户端能够访问该服务,必须指定限定域名,而不是本地主机。

请注意,使用自定义解析程序的客户端必须要有客户端-服务器延迟上限,以便能够成功刷新这些客户端向对等解析程序服务的注册。

请参见

概念

扩展对等通道

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。