【问题标题】:Http Listener doesn't work on Port 8080 or other ports (works only on port 80)Http Listener 不适用于端口 8080 或其他端口(仅适用于端口 80)
【发布时间】:2011-03-23 20:04:09
【问题描述】:

我使用 HttpListener 类 (.net 2.0) 编写了一个简单的 WebServer

它似乎在 80 以外的端口上不起作用。

当我嗅探到我的服务器的传输时,我可以看到端口 8080 上的 Syn 数据包到达服务器,但是没有 Syn/Ack 响应,尽管当我 sue 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 甚至更好的另一个随机用户端口? 谢谢, 伊泰

【问题讨论】:

    标签: .net-2.0 webserver httplistener


    【解决方案1】:

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

    旁注:无需追捕和杀死 IIS 进程,只需停止 IIS windows 服务(运行命令“services.msc”即可查看列表)

    【讨论】:

    • 关于 IIS,这就是我所说的。我停止了 IISAdmin 服务。
    【解决方案2】:

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

    【讨论】:

    • 关于 FW,我不明白 - 如果我能闻到它?它怎么可能被FW阻止?还是 FW 坐在嗅探器后面?
    • 我猜嗅探器在 FW 之前。现在已经修复了! :) 它正在工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2017-09-21
    • 2018-01-13
    相关资源
    最近更新 更多