C#HttpListener和Windows防火墙

时间:2013-07-25 16:08:22

标签: c# httplistener windows-firewall

我正在处理的其中一个程序有一个内置的Web服务器,只能处理非常具体的请求(静态)。与TcpListener不同,当启动HttpListener时,不会提示用户允许程序允许侦听哪些网络。这导致了一个大问题,因为程序需要侦听远程连接,这些连接现在被Windows防火墙拒绝。

如果我在Windows防火墙中创建一个新规则,并在“程序和服务”下选择我的程序,Windows仍然会拒绝所有远程连接...但如果我选择“所有符合指定条件的程序”,那么它工作得很好。我的问题是为什么?为什么防火墙会在专门选择时拒绝我的应用程序?为什么用户不会像使用其他听众一样获得防火墙安全屏幕提示?

1 个答案:

答案 0 :(得分:10)

这是因为HttpListener构建于http.sys之上,它将侦听您代表程序指定的端口。

我还没有找到通过Windows防火墙只允许使用HttpListener的单个程序的方法,但您可能希望仅通过以下方式将入站规则限制为系统组件:

  • 在“程序和服务”标签中的“此程序”字段中输入 system
  • 在“协议和端口”选项卡中选择协议类型 TCP 以及您将要监听的端口
相关问题