首页 文章

为什么HttpListener无法启动?

提问于
浏览
0

我正在使用.NET设计一个http服务器 . 我基本上使用HttpListener从客户端获取http请求 . 首先,我必须指定URL,并将该URL添加到HttpListener . 然后,我必须让HttpListener开始听 . 它开始收听时会出现问题 . 它在开始监听时会产生异常 .

代码如下:
string url = "http://:80/"; //其中是我的电脑的IP地址 .
listener = new HttpListener();
listener.Prefixes.Add(URL);

listener.Start(); //this is where exception occurs, it couldn't start!!!

我的猜测是我必须使用netsh注册该URL . 这是对的吗?

1 回答

  • 0

    我可以想到这可能发生的两个简单原因:

    • 您还有其他已经在端口80上侦听的内容(例如IIS)

    • 您无权侦听端口80

    例外应该表明这是哪种情况 . 注意异常消息始终很重要 - 只需仔细阅读异常就可以修复很多错误 .

    开始在不同的端口上监听可能是最简单的 .

    编辑:在运行一些实验我发现:

    • 我的笔记本电脑上似乎正在使用(或至少无法访问)端口8080 . 使用端口8888可以正常工作,就像12345一样 . 只需在前面进行实验 .

    • 我可以使用"localhost"而不是我的IP地址,但即使127.0.0.1也要求我以管理员身份运行程序 . 作为管理员,我可以使用任何网络接口 .

相关问题