【发布时间】:2018-02-12 10:02:58
【问题描述】:
我在 Visual Studio 中创建了一个 Web 服务应用程序。可以通过以下 URL 访问 Web 服务。
http://localhost:1863/WebServiceTest.asmx(在调试模式下) http://192.168.1.252/WebServiceApp/WebServiceTest.asmx(通过 IIS 发布后)
如果我将“192.168.1.252”替换为网络的静态 IP 地址,该程序仍然有效。但是,如果不使用相同的网络,相同的 URL 将不起作用 - 返回 *"Connection denied" 错误。
如何修复或调试此问题?
我做了什么:
- 使用Windows Firewall 和高级安全在入站和出站规则中添加了 TCP 端口 80。
- 将 PC 更改为使用静态 IP 地址 (192.168.1.252)。
- 将端口 80 转发到静态 IP 地址 (192.168.1.252) 和端口 80。
- 关闭防火墙。
-
netstat -a show port 0.0.0.0:80正在聆听。 - telnet“网络静态IP地址”“80”连接失败。
【问题讨论】:
-
你能分享服务器和客户端配置吗?
-
192.168.1.252 是(通常)本地 IP 地址,这意味着您的 LAN 本地。如果是这种情况,您显然无法从 LAN 外部访问它。您需要配置路由器才能将请求转发到内部 IP 地址(和端口)
-
@FaizanRabbani 你是说 Web.config 吗?如果是,请参考下文。我没有客户端应用程序。
-
@GianPaolo 路由器中的端口转发还不够?我的手机的 IP 是 10.98.241.248,所以我添加了一个端口转发,端口 80 的源目标“10.98.241.248”到端口 80 的本地 IP (192.168.1.252)。
标签: c# web-services networking tcp