“無法啟動 IIS Express Web 伺服器”錯誤
嘗試從 Visual Studio 啟動 IIS Express 並使用配置為偵聽 localhost 以外的地址的項目時收到此錯誤。Visual Studio 在給出錯誤“無法啟動 IIS Express Web 伺服器”之前凍結大約 30 秒。
我已經嘗試了發佈到類似問題的所有解決方案,並且我認為我做的一切都是正確的。以下是我已採取的步驟:
- 將以下預留添加到 HTTP.SYS:
netsh http add urlacl url=http://+:36899/ user=Everyone2. 以管理員身份執行 Visual Studio 2012(從技術上講,我認為我什至不必這樣做,因為我手動設置了 HTTP.SYS)。 3. 禁用 Windows 防火牆。 4. 刪除 My Documents 文件夾中的 IISExpress 文件夾以確保預設設置。 5. 允許 Visual Studio 在 applicationhost.config 中為我的 Web 項目創建條目。然後手動編輯配置文件以更改localhost為192.168.0.100我的本地 IP。然後回到 Visual Studio 中的項目屬性並將 localhost 更改為 IP 並保存項目,以便我的項目現在設置為http://192.168.0.100:36899.我還嘗試更改埠並重複上述步驟,以防埠因某種原因被使用。
我想讓我的 IIS Express 開發人員實例可以從 Internet 上的 IP 訪問以進行遠端測試。
為我解決此問題的一件事是
<bindings>在文件中我的站點部分中使用以下行applicationhost.config:<bindings> <binding protocol="http" bindingInformation="*:8099:" /> </bindings>關鍵是簡單地刪除本地主機。不要用星號替換它,不要用 IP 或電腦名稱替換它。冒號後留空即可。
這樣做之後,我就不需要以管理員身份執行Visual Studio了,我可以自由地將項目屬性中的Project Url更改為本地IP或電腦名。然後我設置了埠轉發,它可以訪問 Internet。
編輯:
我發現了另一個對讓 IIS Express 正確處理外部請求很重要的怪癖。
- 如果您以管理員身份執行 Visual Studio/IIS Express,則不得使用“netsh http add urlacl …”命令向 HTTP.SYS 添加預留。這樣做會導致 HTTP 503 Service Unavailable 錯誤。刪除您在 URLACL 中所做的任何保留以解決此問題。
- 如果您沒有以管理員身份執行 Visual Studio/IIS Express,則必須向 URLACL 添加預留。
如果使用VS2015,請關閉解決方案,刪除以下文件,然後重新打開解決方案。
<path_to_solution_folder>\.vs\config\applicationhost.config注意 .vs 文件夾可能是隱藏的