2010-08-01 154 views
0

我写了使用一个简单的Web服务器HttpListener类(.NET 2.0)HTTP侦听端口8080或其他端口不能正常工作(仅适用于80端口)

它似乎不会对其他端口的工作然后80.

当我嗅到传输到我的服务器时,我可以看到端口8080上的Syn包到达服务器,但没有Syn/Ack响应,虽然当我起诉netstat -ai可以看到服务器正在收听端口8080(我确认我的应用是收听的)

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); 

上面的代码没有收到任何上下文(卡在行server.GetContext()) 如果我将前缀更改为“http://192.168.4.133/” 上述代码完美工作。

当我在端口80上测试它时,我正在查杀IIS服务,并确保我的应用程序是收听相关端口的应用程序。

我在XP上运行这一点,所以我不认为这是安全问题....但你永远不知道.. 我已阅读有关httpcfg工具,但没有真正理解...

在侦听端口80到侦听其他端口之间是否存在一些继续不同的东西? 8080甚至更好的另一个随机用户端口? 谢谢, Itay

回答

2

我建议检查你的防火墙,如果你没有找到任何东西 - 尝试在8080上运行另一台服务器,并检查它是否正常工作(所以你知道它是端口,而不是服务器)。

+0

关于FW,我不明白 - 如果我可以嗅到它?它怎么可能被FW阻挡?或者FW在嗅探器后坐着? – 2010-08-01 12:13:05

+0

我猜嗅探器在FW之前​​。 它现在是固定的! :)它的工作。 – 2010-08-01 12:55:06

2

检查您的防火墙是打开还是关闭,如果打开,是否禁止此端口访问。 您可以暂时将其转为进行测试以确保。

边注:没有必要被追捕和杀害IIS进程,干脆停止IIS的Windows服务(运行命令“SERVICES.MSC”见列表)

+0

关于IIS,这是我的。我停止了IISAdmin服务。 – 2010-08-01 12:12:14

+0

这是FW,谢谢。 – 2010-08-01 12:54:46