我希望我的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访问它
答案 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
这样的默认绑定,它只是在构造函数中传递一个参数。
希望这有帮助!