2010-08-01 7 views
0

j'ai écrit un serveur web simple à l'aide HttpListener de classe (.net 2.0)Http Listener ne fonctionne pas sur le port 8080 ou d'autres ports (ne fonctionne que sur le port 80)

Il semble que cela ne fonctionne pas sur le port autre Lorsque je renifle le transport vers mon serveur, je peux voir les paquets Syn sur le port 8080 arriver au serveur, mais il n'y a pas de réponse Syn/Ack, mais quand je sue netstat -ai peut voir que le serveur écoute le port 8080 (j'ai vérifié que mon application est celle qui écoute)

HttpListener server = new HttpListener() 
server.Prefixes.Add("http://192.168.4.133:8080/"); 
server.Start(); 
_log.Write("Waiting for a connection... "); 
HttpListenerContext context = server.GetContext(); 
HttpListenerRequest request = context.Request; 
HttpListenerResponse response = context.Response; 
_log.Write("Got request for " + request.RawUrl); 

le code ci-dessus ne reçoit pas de contexte (coincé à la ligne server.GetContext()) si je change le préfixe à "http://192.168.4.133/" le code ci-dessus fonctionne parfaitement. Lorsque je le teste sur le port 80, je tue les services IIS et je m'assure que mon application est celle qui écoute le port concerné.

je cours ceci sur XP, donc je ne sais pense pas que ce sont des questions de sécurité .... mais vous ne .. j'ai lu sur l'outil httpcfg, mais na pas vraiment compris ...

Y a-t-il quelque chose de différent entre l'écoute sur le port 80 et l'écoute sur d'autres ports? 8080 ou même mieux un autre port utilisateur aléatoire? Merci, Itay

Répondre

2

Je vous suggère de vérifier votre pare-feu, et si vous ne trouvez rien, essayez d'exécuter un autre serveur sur 8080 et vérifiez si cela fonctionne (vous savez donc que c'est le port, pas le serveur).

+0

concernant le FW, je ne comprends pas - si je peux le renifler? comment est-il possible qu'il soit bloqué par le FW? ou le FW est assis après le renifleur? –

+0

Je suppose que le renifleur est avant le FW. C'est corrigé maintenant! :) Ça marche. –

2

Vérifiez si le pare-feu est activé ou désactivé et si oui, interdisez l'accès au port. Vous pouvez l'activer temporairement pour le test juste pour vous assurer.

Side note: Pas besoin d'être la chasse et de tuer les processus IIS, arrêtez simplement les fenêtres de service IIS (exécutez la commande « services.msc » pour voir une liste)

+0

En ce qui concerne l'IIS, c'est ce que je pense. J'ai arrêté le service IISAdmin. –

+0

C'était le FW, Merci. –

Questions connexes