我只是进入WCF编程。我在工作计算机上设置了一个自托管测试网络服务,该网络计算机是防火墙后面的;它在 http://localhost:8000/MyTestService. 。我可以通过浏览器访问服务页面;所有工作正常。

现在,我想从不同网络上的家用计算机访问该服务。我有一个动态的DNS(称其为mydomain.dyndns.org),以指向我的工作路由器。已经测试过,Dyndns指向正确的地址。

现在,我已经在家用计算机上安装了一个测试应用程序,以连接到我的Web服务。因此,我在同一端口号上将端口8000上的NAT配置为端口8000上的转发请求。

在我的家计算机上,我现在打开一个浏览器并导航到 http://mydomain.dyndns.org:8000/MyTestService. 。无所事事。

显然,我缺少关于NAT和端口转发的真正根本性的东西……但是正如我所说,在编程的这一方面,我有点新手,我真的很感谢这里的一些指导!

有帮助吗?

解决方案

您看到错误还是空页面?您可以从防火墙后面的计算机上检查canyouseeme.org吗?您可以使用Sysinternals TCPView等工具检查连接尝试到达该计算机而不只是路由器吗?

其他提示

我有同样的问题。

经过此台阶的很好的帮助。 http://www.codeproject.com/questions/140317/wcf-services-and-windows-firewall. 。我的WCF服务即使在防火墙活动中也可以在本地LAN上运行良好。

但是它无法通过互联网访问。端口转发后,我可以看到服务描述。但是我无法使用它。

本文 http://gavinmckay.wordpress.com/2009/03/24/howto-fix-fix-wcf-host-name-name-on-iis/ 将我指向正确的方向。该服务是可见的,但是与您的Web服务器的连接将失败,因为WSDL指向未发布的服务器名称,并且您的客户端将无法到达那里。

就我而言,我需要将自托管的WCF更改为公众。

        1 Create a URI to serve as the base address.
        Uri baseAddress = new Uri("http://publicdomain.com:8000/GettingStarted/");
        // Step 2 Create a ServiceHost instance
        ServiceHost selfHostRemote = new ServiceHost(typeof(MyService), baseAddress);

祝你好运

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top