Asp.net

“無法啟動 IIS Express Web 伺服器”錯誤

  • August 26, 2013

嘗試從 Visual Studio 啟動 IIS Express 並使用配置為偵聽 localhost 以外的地址的項目時收到此錯誤。Visual Studio 在給出錯誤“無法啟動 IIS Express Web 伺服器”之前凍結大約 30 秒。

我已經嘗試了發佈到類似問題的所有解決方案,並且我認為我做的一切都是正確的。以下是我已採取的步驟:

  1. 將以下預留添加到 HTTP.SYS:

netsh http add urlacl url=http://+:36899/ user=Everyone 2. 以管理員身份執行 Visual Studio 2012(從技術上講,我認為我什至不必這樣做,因為我手動設置了 HTTP.SYS)。 3. 禁用 Windows 防火牆。 4. 刪除 My Documents 文件夾中的 IISExpress 文件夾以確保預設設置。 5. 允許 Visual Studio 在 applicationhost.config 中為我的 Web 項目創建條目。然後手動編輯配置文件以更改localhost192.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 正確處理外部請求很重要的怪癖。

  1. 如果您以管理員身份執行 Visual Studio/IIS Express,則不得使用“netsh http add urlacl …”命令向 HTTP.SYS 添加預留。這樣做會導致 HTTP 503 Service Unavailable 錯誤。刪除您在 URLACL 中所做的任何保留以解決此問題。
  2. 如果您沒有以管理員身份執行 Visual Studio/IIS Express,則必須向 URLACL 添加預留。

如果使用VS2015,請關閉解決方案,刪除以下文件,然後重新打開解決方案。

<path_to_solution_folder>\.vs\config\applicationhost.config

注意 .vs 文件夾可能是隱藏的

引用自:https://stackoverflow.com/questions/18454751