Não tenho certeza se este é um problema do Windows ou do .NET (ou seja, se pertence aqui no SO), mas escrevi um pequeno programa de servidor HTTP em C# (usando a HttpListner
classe .NET) que funciona bem para na maior parte, mas o Firewall do Windows parece se recusar a permitir conexões de qualquer coisa que não seja o host local. Adicionei exceções para TCP e UDP na seção "Regras de entrada" das configurações do firewall, essencialmente duplicando as regras existentes para outros serviços baseados em HTTP que funcionam bem (por exemplofoo_httpcontrol). Especificamente, adicionei regras separadas para conexões TCP e UDP cobrindo todas as portas, específicas para o executável que estou executando.
Não há problema quando o Firewall do Windows está desabilitado, mas se eu habilitá-lo, a conexão simplesmente expira.
Responder1
Se este for um servidor, acho que você também precisa permitir conexões de saída para ele. Você disse que permitiu conexões de entrada com o servidor (você pode se conectar a ele), mas não criou uma regra para conexões de saída (ele não pode responder) e a conexão atingiu o tempo limite.
Você também pode tentar o Controle do Firewall do Windows para depurar isso:
https://binisoft.org/wfc
Possui uma janela onde são exibidas as últimas conexões bloqueadas do Firewall do Windows. Se você verificar este log, poderá ver o que foi bloqueado recentemente e precisa ser permitido. Eu espero que isso ajude.
Responder2
HttpListener usa Http.sys. Veja issoartigo msdn.