2013-11-01 41 views
0

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

代码如下:
string url =“http:// *:80 /”; //其中*是我的PC的IP地址。
listener = new HttpListener();
listener.Prefixes.Add(url);

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

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

+1

这个例外是什么意思?你还有其他什么东西在80端口上运行? –

回答

0

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

  • 你有别的东西这是在端口80(如IIS)
  • 您没有权限来监听已在侦听端口80

例外情况应指出哪种情况。注意异常信息总是很重要的 - 只要仔细阅读异常,就可以解决很多错误。

从一个不同的端口开始听起来可能是最简单的。

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

  • 8080端口似乎是在使用(或至少难以接近)我的笔记本电脑。使用端口8888可以很好地工作,就像12345一样。只需在该端口上进行实验即可。
  • 我可以使用“本地主机”而不是我的IP地址,但即使127.0.0.1也要求我以管理员身份运行程序。作为管理员,我可以使用任何网络接口。
+0

异常消息是:{“访问被拒绝”}。我改成了8080端口,它仍然得到相同的异常。 – SHuoDo

+0

@SHuoDo:你有没有尝试过使用'localhost'而不是你的IP地址?也尝试各种端口。我用更多的信息编辑了我的答案。 –

+0

我尝试了所有,几个不同的端口#和localhost。它仍然没有工作。你是如何以管理员身份运行c#程序的? – SHuoDo

相关问题