我已经建立了一个wcf网络服务,并且通过使用我的私有IP地址让我在本地mashine上工作得很好。但是,当我尝试在另一个网络上访问它时,浏览器无法连接。我知道有一个公共IP地址,并尝试切换到它,但我自己的计算机和其他网络上的计算机都失败了。
我使用的代码是:
WebServiceHost host = new WebServiceHost(typeof(serviceSetup), new Uri("http://PublicIp:8000"));
ServiceEndpoint ep = host.AddServiceEndpoint(typeof(serviceContract), new WebHttpBinding(), "/");
ep.Behaviors.Add(new WebHttpBehavior());
host.Open();
/*
WebServiceHost myHost = new WebServiceHost(typeof(serviceSetup), new Uri("http://PrivateIP:8000"));
ServiceEndpoint myep = myHost.AddServiceEndpoint(typeof(serviceContract), new WebHttpBinding(), "/");
myep.Behaviors.Add(new WebHttpBehavior());
myHost.Open();
*/
我做错了什么?它是一个像防火墙块一样的非代码问题吗?或者我对IP地址一无所知?
答案 0 :(得分:0)
问题是我在路由器后面阻止我的计算机在公共IP地址上托管。解决方案是将路由器上的端口映射到我的计算机,以便我的应用程序可以接收传入的请求。非常感谢Mark Hall在评论中指出了正确的方向。