具有消息安全性的WCF服务发现

时间:2013-11-12 10:16:27

标签: wcf x509certificate service-discovery

我有一个基于WCF的客户端 - 服务器应用程序,我正在使用ServiceDiscovery从客户端查找服务器。在安全关闭的开发过程中,发现工作正常,但是当我们根据证书打开邮件安全性时,ServiceDiscovery就停止了工作。

当我搜索解决方案时,我发现了这篇MSDN文章http://msdn.microsoft.com/en-us/library/dd456791%28v=vs.110%29.aspx所在的地方;

  

使用消息级别安全性时,必须在服务发现端点上指定EndpointIdentity,并在客户端发现端点上指定匹配的EndpointIdentity。有关消息级别安全性的更多信息,请参阅WCF中的消息安全性。

我一直在搜索,阅读和编​​写代码,但我似乎无法将其转化为正常工作的代码。有什么想法吗?

原始服务器代码的摘要:

private Binding CreateBinding()
{
    WSDualHttpBinding binding = new WSDualHttpBinding(WSDualHttpSecurityMode.Message);
    // Set other binding properties
    return binding;
}

private static void EnableServiceDiscovery(ServiceHostBase host)
{
    host.AddServiceEndpoint(new UdpDiscoveryEndpoint());
    host.Description.Behaviors.Add(new ServiceDiscoveryBehavior());
}

原始客户端代码的紧凑摘录:

public IEnumerable<MyServiceEndpoint> FindServicesOnNetwork()
{
    DiscoveryClient discoveryClient = new DiscoveryClient(new UdpDiscoveryEndpoint());
    var myServiceEndpoints = discoveryClient.Find(new FindCriteria(typeof (IMyService))).Endpoints;
    discoveryClient.Close();
    return myServiceEndpoints.Select(endpoint => new MyServiceEndpoint(endpoint.Address.Uri.ToString())).ToList();
}

0 个答案:

没有答案