为什么HttpListener无法启动?

时间:2013-11-01 06:52:34

标签: .net http url ip

我正在使用.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 :(得分:0)

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

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

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

开始在另一个端口上进行侦听可能是最简单的。

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

  • 我的笔记本电脑上似乎正在使用(或至少无法访问)端口8080。使用端口8888可以正常工作,就像12345一样。只需在前面进行实验。
  • 我可以使用“localhost”而不是我的IP地址,但即使127.0.0.1也要求我以管理员身份运行程序。作为管理员,我可以使用任何网络接口。