Проблемы с брандмауэром Windows

Проблемы с брандмауэром Windows

Я не уверен, проблема ли это Windows или проблема .NET (т.е. относится ли это к SO), но я написал небольшую программу HTTP-сервера на C# (используя класс .NET HttpListner), которая в основном работает нормально, но брандмауэр Windows, похоже, отказывается пропускать к ней соединения от чего-либо, кроме localhost. Я добавил исключения для TCP и UDP в раздел «Входящие правила» настроек брандмауэра, по сути дублируя существующие правила для других служб на основе HTTP, которые работают нормально (например,foo_httpcontrol). В частности, я добавил отдельные правила для TCP- и UDP-соединений, охватывающие все порты, относящиеся к исполняемому файлу, который я запускаю.

Если брандмауэр Windows отключен, проблем не возникает, но если я его включаю, соединение просто прерывается.

решение1

Если это сервер, я думаю, вам также нужно разрешить исходящие соединения для него. Вы сказали, что разрешили входящие соединения с сервером (вы можете подключиться к нему), но вы не создали правило для исходящих соединений (он не может ответить), и соединение истекает по тайм-ауту.

Для устранения этой неполадки вы также можете попробовать использовать Windows Firewall Control:

https://binisoft.org/wfc

В нем есть окно, в котором отображаются последние заблокированные соединения из брандмауэра Windows. Если вы проверите этот журнал, то сможете увидеть, что было заблокировано недавно и что нужно разрешить. Надеюсь, это поможет.

решение2

HttpListener использует Http.sys. Смотреть этостатья msdn.

Связанный контент