簡體   English   中英

無法連接到 web 服務器“IIS Express”

[英]Unable to connect to web server 'IIS Express'

我正在使用 Microsoft Visual Studio 2019 社區預覽版,版本 16.4.0 預覽版 1.0。 我剛剛更新到 Windows 10 Pro 版本 1903 OS build 18362.418。 使用 ASP.NET Core 3 web-app 項目(Blazor 服務器),當我按F5時,我發現錯誤

我可以手動 go 到https://localhost:44333/ ,但這很不方便。 當我停止調試時,我也在任務欄手動關閉它。

對於另一個網絡應用程序項目,問題不會發生。

當我選擇或不選擇選項Enable native code debugging時,不成功。

如何解決?

啟用/禁用 SSL

這是簡單的解決方法。 對我來說,在 Visual Studio 的項目調試選項卡中切換“啟用 SSL”設置(只需將其更改為與當前設置的相反並運行項目)已經解決了這個問題。

據我了解,這可能有兩個原因。 首先,它會導致 Visual Studio 更新 Applicationhost 配置(稍后會詳細介紹)。 其次,有時SSL地址是綁定的。 因此禁用 SSL 會禁用該問題。

應用程序主機配置

打開您的$(solutionDir)\.vs\config\applicationhost.config文件並確保您的站點如下所示:

<site name="[YOUR PROJECT NAME]" id="3">
  <application path="/" applicationPool="Clr4IntegratedAppPool">
    <virtualDirectory path="/" physicalPath="//PATH/TO/YOUR PROJECT" />
  </application>
  <bindings>
    <binding protocol="http" bindingInformation="*:[YOUR_PORT]:localhost" />
    <binding protocol="https" bindingInformation="*:[YOUR_SSL_PORT]:localhost" />
  </bindings>
</site>

確保 iplisten 配置為 0.0.0.0

如果沒有配置 IP 監聽列表,可能會出現這個問題(注意,我不知道為什么)。

檢查 netsh 以確保有 0.0.0.0 的條目

PS C:\Windows\system32> netsh http show iplisten

IP addresses present in the IP listen list:
-------------------------------------------

::     
0.0.0.0

PS C:\Windows\system32>

如果不存在,請添加正確的 netsh 規則。 為此,您需要管理員 cmd.exe 或管理員 PowerShell。

PS C:\Windows\system32> netsh http add iplisten ipaddress=0.0.0.0

確保沒有任何東西綁定到您正在使用的地址

對我來說,這似乎是 Blazor 的問題。 如果地址綁定到 Blazor 嘗試使用的地址,這可能會導致問題。 再次使用netsh檢查正在使用的內容。

netsh http show urlacl

一個看起來像這樣的條目

Reserved URL            : http://*:50902/
    User: \Everyone
    Listen: Yes
    Delegate: No
    SDDL: D:(A;;GX;;;WD)

可以用這個命令刪除

netsh http del urlacl url=http://*:50902/

我遇到了與 OP 描述的完全相同的問題,我的意思是我收到了錯誤消息,但檢查 IIS Express 圖標,顯示一切正常,因此手動轉到 url 工作正常。

從字面上嘗試了上面描述的所有內容,包括

  • 站內IIS快遞
  • 停止IIS快遞
  • 退出VS重啟VS
  • 檢查 .vs 文件夾中的所有內容
  • 刪除.vs文件夾
  • 作為 POC 創建了一個全新的 ASP.NET 核心項目,它工作正常

沒有任何幫助。

我知道這作為“解決方案”很荒謬,但是在花了半個小時之后,我終於重新啟動了我的機器,從那時起一切正常......值得一試

以為即使我參加聚會遲到了,我也會投入對我有用的東西。 上面的解決方案對我不起作用。

  1. 轉到項目的屬性-> 調試選項卡
  2. 將 AppURL 中的端口號更改為 x + 1,即對於我的實例 http://localhost:44348 => http://localhost:44349
  3. 關閉解決方案
  4. 刪除了應用程序主機配置
  5. 重新打開解決方案。
  6. 將端口號改回原來的

我過去偶爾會遇到這個問題。 我通常可以通過以下方式解決問題:

  1. 單擊任務欄的顯示隱藏圖標區域。 您將看到 IIS Express 圖標。
  2. Select 圖標,您應該會看到您的網站已列出。 在該菜單中向下鑽取,單擊“停止站點”。

在其他情況下,我曾讓企業安全軟件干擾 Visual Studio/IIS Express 操作。 通常,您可以通過以管理員身份運行 Visual Studio 來解決此問題。 我試圖向安全人員解釋這是一個多么糟糕的想法,但他們通常不明白。

最后,如果您正在運行 Asp.Net Core 應用程序,您可以放棄 IIS Express。 如果您查看播放按鈕旁邊,有一個下拉列表顯示“IIS Express”。 如果您打開列表,您將在那里看到您的應用程序的名稱。 Select 那一個。 您將使用 kestrel 而不是 IIS Express 運行。

我有同樣的問題,我可以通過更改端口號來解決它。

  1. 右鍵單擊項目和 select 屬性
  2. Go 到調試部分
  3. Web Server Settings下更改App URL端口【就加一】

對我沒有任何幫助(包括刪除.vs 、刪除objbin 、清理項目、重新啟動 VS Studio、運行netstat -ao | findstr <port number>以找出誰在使用我的端口等等) 沒有什么。

除了這個:

  1. 以管理員身份打開PowerShell
  2. 運行Get-Process -Id (Get-NetTCPConnection -LocalPort MY-PORT-NUMBER).OwningProcess (將端口號更改為您的端口號)
  3. 最后,在我的情況下,這表明這個過程: service host: windows push notifications system service正在使用我的端口。 記下這個進程的ID和..
  4. Go 到任務管理器(更多詳細信息)> 進程 > 通過該ID查找進程並殺死子進程(因為在系統不可用的情況下無法殺死該父進程本身)

而已。 就我而言,它是windows push notifications system service 一旦我找到它並殺死它 - 一切正常,無需重新啟動整個計算機或更改端口號

我通過關閉 Visual Studio (2019) 解決了這個問題並重新啟動它,以管理員身份運行。

對我來說,我有另一個使用相同端口的應用程序,我將項目調試設置中的端口更改為其他內容。

將應用程序 url (通過右鍵單擊解決方案 -> 屬性 -> 調試 -> 應用程序 url)從 http://localhost:59017 更改為 Z80791B3AE7002CB88C2Z 已刪除7為我:6876D9FAA8F。 在此處輸入圖像描述

刪除.vs文件夾將解決此問題。

  1. Go 到應用位置
  2. 刪除.vs文件夾(隱藏文件夾)
  3. 再次啟動項目!

另一種選擇,也是我更喜歡的一種選擇,因為不必浪費時間與 IISExpress 打架,它是運行您的項目啟動配置文件而不是 IISExpress 配置文件。

Blazor 是 .NET 核心應用程序,因此您可以使用 Kestrel 對其進行調試。

我遇到過同樣的問題。 我已連接到我的組織 VPN。 我只是斷開了 VPN,重新啟動了 IIS 並再次嘗試。 現在工作正常,

我在 IIS Express 上遇到了完全相同的問題,似乎突然出現。 我的解決方案是簡單地打開 IIS 管理器並重新啟動 IIS(在右側面板中的操作 -> 管理服務器下)。 結果,項目啟動立即恢復工作。

我面臨同樣的問題,我一直嘗試,我沒有得到正確的解決方案。 最后我使用以下步驟解決了。 在 VS 中轉到工具 => 選項 => 項目和解決方案 => Web 項目 => 單擊復選框 - 使用 64 位版本的 IIS express 用於網站和項目。

有了這個,我就擺脫了我的問題。

當同一個工作站上有多個同名的解決方案時,我似乎遇到了這個煩人的問題。 主機文件最終具有名稱 app、app(1)、app(2)、app(N) 等。 此處的解決方案是根據您的喜好在 \app(N).vs\app\config\applicationhost.config 中手動調整主機文件,以與您在 Properties>Web>Project URL 中設置的任何端口對齊。 您可能還需要卸載項目並在項目配置中設置相同的端口號。

如果沒有任何效果(或者如果您只想讓它快速工作),請嘗試另一件事:

卸載 IIS Express,然后重新安裝它 - 可以從 Visual Studio 安裝程序組件(添加/刪除)中完成。

以上所有解決方案都對我不起作用,但是在經過多個解決方案后,一個簡單的解決方案是有效的;

請按照以下步驟操作;

  1. Go 到 Visual Studio 中的項目/主解決方案文件夾
  2. 右鍵單擊它並選擇屬性
  3. Go 到調試選項卡
  4. 向下滾動到 Web 服務器設置並關閉 SSL

在此處輸入圖像描述

  1. 再次運行您的解決方案,您應該能夠繼續沒有錯誤

這總是對我有用:

  1. 刪除項目中“Properties”文件夾中的“launchSettings.json”
  2. 在 Visual Studio 中打開項目
  3. 重建項目
  4. 調試 (F5) 或運行 (Ctrl + F5)。

有一個快樂的編碼:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM