WCF监听基地址anyip

时间:2010-08-08 12:02:54

标签: c# wcf servicehost

我希望我的servicehost拥有任何IP的基地址 所以我试过这个

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

它给了我无效的URI格式

任何人都知道我该怎么写这个?

我试图从本地局域网外部访问它并且它没有用,我使用tcpiplistener制作了一个小测试软件,我开始收听同一个端口,我将tcpip协议的基地址设置为anyip和小测试软件工作,所以我想出我需要做的就是为Webservice设置相同 -

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

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

2 个答案:

答案 0 :(得分:4)

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

Uri baseAddress = new Uri("net.tcp://0.0.0.0:8080/MyService");
host = new ServiceHost(typeof(MyServer), baseAddress);

答案 1 :(得分:1)

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

相关问题