Итак, я пытаюсь получить 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();
С помощью этого куска брандмауэр блокирует внешний клиент.