【发布时间】:2013-07-25 15:46:47
【问题描述】:
我正在开发的其中一个程序有一个内置的网络服务器,仅用于处理非常具体的请求(静态)。与 TcpListener 不同的是,当启动 HttpListener 时,不会提示用户允许程序允许侦听哪些网络。这导致了一个大问题,因为程序需要侦听远程连接,而这些远程连接现在被 Windows 防火墙拒绝。
如果我在windows防火墙中制定新规则,并在“程序和服务”下选择我的程序,windows仍然会拒绝所有远程连接...但是如果我选择“所有满足指定条件的程序”,那么它工作得很好。我的问题是为什么?为什么防火墙在特别选择时拒绝我的应用程序?为什么用户没有像其他侦听器一样收到防火墙安全屏幕提示?
【问题讨论】:
-
您是否在该配置中添加了正确的(调试/发布)版本。不确定这是否会有所不同,但可能是基于位置的。
-
我使用的是 Installed Release 版本(随部署项目安装程序一起安装)
-
你试过直接打开端口吗?
-
端口 80 在我的路由器上打开并启用了 DMZ。我有一个运行良好的 apache 服务器。只有当我创建一个允许任何和所有传入连接通过端口 80 的防火墙规则时,我才能让 HttpListener 应用程序工作。
标签: c# httplistener windows-firewall