2013-11-01 45 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

相關問題