我想使用WCF创建客户端和服务器程序。它们之间的通信将是TCP。客户端将是一个Windows窗体,可以插入主机名,然后它将列出该机器上运行的所有服务器。
有办法做到这一点吗?即浏览机器主机中的所有WCF服务?
答案 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库或编写自己的库。