2

我有一个带有自托管 WCF 服务的应用程序。

我的 WCF 服务在 URI“net.tcp://localhost:8004/DocumentService”下发布。当我在远程计算机上运行该服务并尝试使用新的 .NET 4 类 DiscoveryClient 发现该服务时,发现的服务也都具有 URI“net.tcp://localhost:8004/DocumentService”,而没有任何关于托管服务的实际机器。

如果我想访问远程机器上的服务,显然这是没用的。但是我在传递给 FindProgressChanged 的​​参数中找不到对实际远程计算机(IP 地址或服务器名称)的任何引用。

有没有办法获取有关远程机器的信息,或者我必须使用远程机器的机器名称发布我的服务?还是 DiscoveryClient 刚刚坏了?

我希望这是有道理的。

4

1 回答 1

4

我花了很多时间研究这个问题。在代码中构建基地址对我来说是不可接受的,因为它意味着硬编码传输方案和端口(后者当然可以存储在单独的配置部分中,但为什么不直接使用现有部分呢?)。我希望能够像往常一样在 config 中配置基地址。事实证明,像这样的基地址<add baseAddress="net.tcp://*:8731/"/>可以完美地工作。我认为编程配置也是如此。

于 2010-12-20T12:10:40.253 回答