Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 防火墙后的WCF服务–如何设置端口转发?_C#_Wcf_Firewall_Nat_Self Hosting - Fatal编程技术网

C# 防火墙后的WCF服务–如何设置端口转发?

C# 防火墙后的WCF服务–如何设置端口转发?,c#,wcf,firewall,nat,self-hosting,C#,Wcf,Firewall,Nat,Self Hosting,我刚刚开始学习WCF编程。我在我的工作计算机上设置了一个自托管测试web服务,它位于防火墙后面;在http://localhost:8000/MyTestService. 我可以通过浏览器访问服务页面;一切正常 现在我想从另一个网络上的家庭计算机访问该服务。我有一个动态dns,叫做mydomain.dyndns.org,用来指向我的工作路由器。经过测试,dyndns指向了正确的地址 现在我已经在家里的电脑上安装了一个测试应用程序来连接我的网络服务。因此,我将NAT配置为将端口8000上的请求转

我刚刚开始学习WCF编程。我在我的工作计算机上设置了一个自托管测试web服务,它位于防火墙后面;在http://localhost:8000/MyTestService. 我可以通过浏览器访问服务页面;一切正常

现在我想从另一个网络上的家庭计算机访问该服务。我有一个动态dns,叫做mydomain.dyndns.org,用来指向我的工作路由器。经过测试,dyndns指向了正确的地址

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

在我的家用电脑上,我现在打开浏览器并导航到http://mydomain.dyndns.org:8000/MyTestService. 没事儿


很明显,我遗漏了NAT和端口转发的一些基本信息。。。但正如我所说,我对编程的这一方面有点陌生,我真的很感激这里的一些指导

您看到的是错误页还是空白页?你能从防火墙后面的计算机上检查一下canyouseeme.org端口是否真的打开了吗?您是否可以使用sysinternals tcpview等工具检查连接尝试是否到达此计算机,而不仅仅是路由器?

您是否看到错误或空白页?你能从防火墙后面的计算机上检查一下canyouseeme.org端口是否真的打开了吗?您是否可以使用sysinternals tcpview等工具检查连接尝试是否到达这台计算机,而不仅仅是路由器?

我也遇到了同样的问题

在得到这位顶尖人物的大力帮助后。我的WCF服务在本地LAN上运行良好,即使防火墙处于活动状态

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

这篇文章为我指明了正确的方向。 该服务是可见的,但与web服务器的连接将失败,因为WSDL指向未发布的服务器名称,而您的客户端将无法到达该名称

在我的例子a中,我需要将自托管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);

我也有同样的问题

在得到这位顶尖人物的大力帮助后。我的WCF服务在本地LAN上运行良好,即使防火墙处于活动状态

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

这篇文章为我指明了正确的方向。 该服务是可见的,但与web服务器的连接将失败,因为WSDL指向未发布的服务器名称,而您的客户端将无法到达该名称

在我的例子a中,我需要将自托管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);

您需要3件事:端口转发、路由器上的开放端口和计算机上的开放端口。除了添加端口转发,您可能还需要打开路由器防火墙上的端口。您的计算机的防火墙也可能不接受来自外部的传入连接,仅在localhost上。啊哈,这里有一个线索:canyouseeme.org看不到该端口!我尝试了端口8000和端口18000,在我的计算机上转发到我的端口8000;两者都失败了。不过,RDP端口3389确实可以工作。当我设置另一个端口13389以转发到我的端口3389时,这也起作用。很明显,我电脑上的8000端口没有正常响应。现在怎么办?打开我电脑上的防火墙到8000端口-正在工作!非常感谢。您需要3件事:端口转发、路由器上的开放端口和计算机上的开放端口。除了添加端口转发,您可能还需要打开路由器防火墙上的端口。您的计算机的防火墙也可能不接受来自外部的传入连接,仅在localhost上。啊哈,这里有一个线索:canyouseeme.org看不到该端口!我尝试了端口8000和端口18000,在我的计算机上转发到我的端口8000;两者都失败了。不过,RDP端口3389确实可以工作。当我设置另一个端口13389以转发到我的端口3389时,这也起作用。很明显,我电脑上的8000端口没有正常响应。现在怎么办?打开我电脑上的防火墙到8000端口-正在工作!非常感谢。这也是我的问题,uri必须是它运行的物理位置的uri。谢谢Marcel。这也是我的问题,uri必须是它运行的物理位置的uri。谢谢你,马塞尔。。