3

我希望我的服务主机拥有任何 IP 的基地址,所以我尝试了这个

new ServiceHost(typeof(LoggingController),new Uri("0.0.0.0"));

它给了我无效的URI格式

有谁知道我应该怎么写这个?

好吧,我尝试从本地局域网外部访问它,但它不起作用,我使用 tcpiplistener 制作了一个小型测试软件,我开始监听相同的端口,并将 tcpip 协议的基地址设置为 anyip 和小型测试软件工作了,所以我发现我需要做的就是为 Web 服务设置相同的值 -</p>

TcpListener tcpListener = new TcpListener(IPAddress.Any,10021);

这也意味着我的系统管理员完成了确保端口/服务器可以从外部访问的工作,现在我的网络服务不应该工作!?它可以工作,但我无法从外部访问它,如果我在同一台 PC 上运行客户端,我可以从同一台 PC 访问它

4

2 回答 2

4

以下代码在类似情况下适用于我:

Uri baseAddress = new Uri("net.tcp://0.0.0.0:8080/MyService");
host = new ServiceHost(typeof(MyServer), baseAddress);
于 2011-09-25T23:14:51.703 回答
1

让我想起了我们的软件遇到的问题。Web 服务的默认配置使用 Windows 网络凭据来应用基于消息的安全性,由于域/网络凭据的原因,该安全性在其他网络中不起作用。我们的解决方案是禁用服务绑定的安全性(根据您使用的绑定,这可能有点棘手)。对于默认绑定,就像WebHttpBinding它只是在构造函数中传递一个参数。希望这可以帮助!

于 2010-08-08T13:06:56.383 回答