問題:
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服務器。