C#Http伺服器報HttpListener拒絕訪問異常解決方法
阿新 • • 發佈:2019-02-13
問題:Win7下在嘗試搭建簡單http伺服器的時候,執行httpListener.Start();報錯HttpListener拒絕訪問異常
程式碼如下:
HttpListener httpListener = new HttpListener();//建立伺服器監聽
httpListener.Prefixes.Add("http://+:8080/");//配置監聽地址。+代表本機可能的IP如localhost、127.0.0.1、192.168.199.X(本機IP)等;
httpListener.Start(); //開啟對指定URL和埠的監聽,開始處理客戶端輸入請求。
解決方法:
以管理員CMD命令列執行:
①先刪除可能存在的錯誤urlacl,這裡的*號代指localhost、127.0.0.1、192.168.199.X本地地址和+號等。
命令:netsh http delete urlacl url=http://*:8080/
舉例:netsh http delete urlacl url=http://+:8080/
②將上面刪除的*號地址重新加進url,user選擇所有人
命令:netsh http add urlacl url=http://*:8080/ user=Everyone
舉例:netsh http add urlacl url=http://+:8080/ user=Everyone
③CMD配置防火牆
netsh advfirewall firewall Add rule name=\"命令列Web訪問8080\" dir=in protocol=tcp localport=8080 action=allow
經過如上設定服務端就可以以httpListener.Prefixes.Add("http://+:8080/");監聽地址開啟監聽。客戶端可以通過訪問服務端8080埠。服務端本機也可以在瀏覽器中以localhost和127.0.0.1訪問自身http伺服器。
17.8.23補充:
上面的命令最好手打一下輸入,今天嘗試複製到cmd執行的時候會報無法識別命令的錯誤。