如何在主机上浏览所有WCF服务?

时间:2013-03-03 02:27:04

标签: c# wcf

我想使用WCF创建客户端和服务器程序。它们之间的通信将是TCP。客户端将是一个Windows窗体,可以插入主机名,然后它将列出该机器上运行的所有服务器。

有办法做到这一点吗?即浏览机器主机中的所有WCF服务?

2 个答案:

答案 0 :(得分:4)

WCF发现 - http://msdn.microsoft.com/en-us/library/dd456782.aspx

Windows Communication Foundation(WCF)支持使用WS-Discovery协议以可互操作的方式在运行时发现服务。 WCF服务可以使用多播消息或发现代理服务器向网络宣布其可用性。 客户端应用程序可以搜索网络或发现代理服务器,以查找符合一组条件的服务。

如何:以编程方式将可发现性添加到WCF服务和客户端 - http://msdn.microsoft.com/en-us/library/dd456783.aspx

答案 1 :(得分:0)

没有自动的方法来做到这一点。多年来一直有各种目录服务协议,但它们从未真正起飞过。总体上取得最大成功的那个被称为Multicast DNS or zeroconf。但是,Windows API不能很好地支持它。 Apple以Bonjour的名称支持它,Linux以Avahi的名称支持它。

最接近的Windows等价物是UPnP SSDP,但在发现了一些广为人知的安全漏洞之后,微软基本上不再支持它。有一个称为PNRP(对等名称解析协议)的IPv6粗略等价物,但这也很大程度上不再使用。

因此,您的选择实际上是为Windows找到mDns库或编写自己的库。