我不确定这是 Windows 问题还是 .NET 问题(即它是否属于 SO 上的问题),但我用 C#(使用 .NET 类HttpListner
)编写了一个小型 HTTP 服务器程序,该程序在大多数情况下运行良好,但 Windows 防火墙似乎拒绝让除本地主机以外的任何设备连接到它。我在防火墙设置的“入站规则”部分添加了 TCP 和 UDP 例外,本质上是复制了其他运行良好的基于 HTTP 的服务的现有规则(例如foo_httpcontrol)。具体来说,我针对 TCP 和 UDP 连接添加了单独的规则,涵盖所有端口,特定于我正在运行的可执行文件。
禁用 Windows 防火墙时没有问题,但如果我启用它,连接就会超时。
答案1
如果这是服务器,我认为您还需要允许其出站连接。您说您允许服务器的入站连接(您可以连接到它),但您没有为出站连接创建规则(它无法响应),因此连接超时。
您还可以尝试使用 Windows 防火墙控制来调试此问题:
https://binisoft.org/wfc
它有一个窗口,其中显示了 Windows 防火墙最近阻止的连接。如果您检查此日志,您将能够看到最近被阻止的内容以及需要允许的内容。希望这对您有所帮助。
答案2
HttpListener 使用 Http.sys。请参阅此msdn 文章。