我正在使用.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 回答
我可以想到这可能发生的两个简单原因:
您还有其他已经在端口80上侦听的内容(例如IIS)
您无权侦听端口80
例外应该表明这是哪种情况 . 注意异常消息始终很重要 - 只需仔细阅读异常就可以修复很多错误 .
开始在不同的端口上监听可能是最简单的 .
编辑:在运行一些实验我发现:
我的笔记本电脑上似乎正在使用(或至少无法访问)端口8080 . 使用端口8888可以正常工作,就像12345一样 . 只需在前面进行实验 .
我可以使用"localhost"而不是我的IP地址,但即使127.0.0.1也要求我以管理员身份运行程序 . 作为管理员,我可以使用任何网络接口 .