Почему Windows не просит разрешить порт на брандмауэре? - PullRequest
0 голосов
/ 28 апреля 2019

Итак, я пытаюсь получить HTTP-запрос от пользователя, которого нет в моей локальной сети. Я сделал слушатель, используя класс C # HttpListener. Я добавил префикс так: "http://*:[port]/"

Теперь это работает на локальном компьютере. Но как только кто-то извне пытается связаться с «веб-сервером», брандмауэр Windows 10 запускается и не разрешает запрос.

Я знаю это, потому что это работает, если я отключаю брандмауэр.

Следовательно, веб-сервер бесполезен.

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

Почему он не спрашивает снова с HttpListener?

Это из-за этого? Брандмауэр Не запрашивает разрешения на открытие порта

Я бы хотел, чтобы пользователю НЕ пришлось вручную разрешать порт + приложение в там брандмауэре.

      externalIP = "MY.EXTERNAL.IP.000";
      httplistenener = new HttpListener();

      httplistenener.Prefixes.Add("http://*:" + port + "/");

      httplistenener.Start();

С помощью этого куска брандмауэр блокирует внешний клиент.

...