我使用HttpListener类(.net 2.0)
编写了一个简单的WebServer似乎它不适用于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);
上面的代码没有收到任何Context(卡在服务器上.GetContext()) 如果我将前缀更改为“http://192.168.4.133/” 上面的代码完美无缺。
当我在端口80上测试它时,我正在查杀IIS服务,并确保我的应用程序是收听相关端口的应用程序。
我在XP上运行这个,所以我不认为这是安全问题....但你永远不知道.. 我已经阅读过有关httpcfg工具的内容,但并没有真正理解它...
在侦听端口80到侦听其他端口之间是否存在一些不同的东西? 8080甚至更好的另一个随机用户端口? 谢谢, 伊泰
答案 0 :(得分:2)
检查防火墙是打开还是关闭,如果打开,是否禁止此端口访问。 您可以暂时将其转换为测试,以确保。
附注:无需搜索并终止IIS进程,只需停止IIS Windows服务(运行命令“services.msc”查看列表)
答案 1 :(得分:2)
我建议检查你的防火墙,如果你没找到任何东西 - 尝试在8080上运行另一台服务器并检查它是否正常工作(所以你知道它是端口,而不是服务器)。