1

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

代码如下:
string url = "http://*:80/"; //其中*是我的PC的IP地址。
监听器 = 新的 HttpListener();
listener.Prefixes.Add(url);

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

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

4

1 回答 1

0

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

  • 你有其他东西已经在监听 80 端口(比如 IIS)
  • 您无权监听 80 端口

例外情况应表明是哪种情况。注意异常消息总是很重要的——很多错误可以通过仔细阅读异常来修复。

从不同的端口开始监听可能是最简单的。

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

  • 我的笔记本电脑上似乎正在使用端口 8080(或至少无法访问)。不过,使用端口 8888 和 12345 都可以正常工作。只需在这方面进行试验。
  • 我可以使用“localhost”代替我的 IP 地址,但即使是 127.0.0.1 也需要我以管理员身份运行程序。作为管理员,我可以使用任何网络接口。
于 2013-11-01T06:57:28.733 回答