我有一个带有自托管WCF服务的应用。
我的WCF服务在URI“net.tcp:// localhost:8004 / DocumentService”下发布。当我在远程计算机上运行该服务并尝试使用新的.NET 4类DiscoveryClient发现服务时,找到的服务都具有URI“net.tcp:// localhost:8004 / DocumentService”,而没有任何关于托管服务的实际机器。
显然,如果我想访问远程计算机上的服务,这将毫无用处。但我找不到传递给FindProgressChanged的参数中的实际远程机器(IP地址或服务器名称)的任何引用。
有没有办法获取有关远程机器的信息,或者我是否必须使用远程机器的机器名称发布我的服务?或者DiscoveryClient刚破裂?
我希望这是有道理的。
答案 0 :(得分:4)
我花了很多时间来研究这个问题。在代码中构建基地址对我来说是不可接受的,因为它意味着硬编码传输方案和端口(当然,后者可以存储在单独的配置部分中,但为什么不仅仅使用现有部分?)。我希望能够像往常一样在config中配置基地址。事实证明,像<add baseAddress="net.tcp://*:8731/"/>
这样的基地址将完美起作用。我认为程序化配置也是如此。