共用方式為


從 Visual Studio 使用 Azure VM 在 IIS 上遠端偵錯 ASP.NET Core

本指南說明如何安裝和設定 Visual Studio ASP.NET Core 應用程式、使用 Azure VM 將其部署到 IIS,以及從 Visual Studio 附加遠端偵錯工具。

針對 IIS 案例,不支援 Linux。

若要對 Azure VM 上的 IIS 進行偵錯,請遵循本文中的步驟。 使用此方法時,您可以使用自訂的 IIS 組態,但設定和部署步驟會比較複雜。 如果您不需要為案例自訂 IIS,您可以選擇更簡單的方法,改以在 Azure App Service 中裝載及偵錯應用程式。

針對 Azure VM,您必須將應用程式從 Visual Studio 部署至 Azure,而且也需要手動安裝 IIS 角色和遠端偵錯工具,如下圖所示。

此圖顯示 Visual Studio、Azure VM 和 ASP.NET 應用程式之間的關聯。IIS 和遠端偵錯工具會以實線表示。

警告

請務必刪除您在完成本教學課程中的步驟時所建立的 Azure 資源。 如此一來,您就可以避免產生不必要的費用。

已在這些伺服器組態上測試這些程序:

  • Windows Server 2022 和 IIS 10
  • Windows Server 2019 和 IIS 10
  • Windows Server 2016 和 IIS 10

必要條件

需要 Visual Studio 2019 或更新版本,才能遵循本文中所示的步驟。

網路需求

不支援在透過 Proxy 連線的兩部電腦之間進行偵錯。 不建議透過高延遲或低頻寬的連線進行偵錯 (例如撥接網際網路),或透過網際網路跨國家/地區進行偵錯,因為可能會發生失敗或極為緩慢。 如需完整的需求清單,請參閱需求

應用程式已在 Azure VM 上的 IIS 中執行?

本文包含在 Windows 伺服器上安裝 IIS 的基本設定,以及從 Visual Studio 部署應用程式的步驟。 已將這些步驟包含在內,確保伺服器已安裝必要的元件、應用程式可正確執行,且您已準備好進行遠端偵錯。

  • 如果您的應用程式是在 IIS 中執行,而您只想下載遠端偵錯工具並開始偵錯,請移至在 Windows Server 上下載及安裝遠端工具

  • 如果您想要協助確定您的應用程式已在 IIS 中正確安裝、部署及執行以便進行偵錯,請遵循本文中的所有步驟。

    • 開始之前,請遵循建立 Windows 虛擬機器中所述的所有步驟,其中包含安裝 IIS 網頁伺服器的步驟。

    • 請務必在 Azure 網路安全性群組中開啟連接埠 80。 當您確認連接埠 80 已開啟時,也請開啟遠端偵錯工具的正確連接埠 (4026、4024 或 4022)。 如此一來,您稍後就不必將其開啟。 如果您使用 Web Deploy,也請開啟連接埠 8172。

在 Visual Studio 電腦上建立 ASP.NET Core 應用程式

  1. 建立新的 ASP.NET Core Web 應用程式。

    在 Visual Studio 中,選擇 [檔案]>[開始] 視窗以開啟 [開始] 視窗,然後選擇 [建立新專案]。 在搜尋方塊中,輸入 Web 應用程式、選擇 [C#] 做為語言,然後選擇 [ASP.NET Core Web 應用程式 (Model-View-Controller)],然後選擇 [下一步]。 在下一個畫面上,將專案命名為 MyASPApp,然後選擇 [下一步]

    選擇建議的目標 Framework 或 .NET 8,然後選擇 [建立]。 版本必須符合伺服器上所安裝的版本。

  2. 開啟控制器資料夾中的 HomeController.cs 檔案,並在 Privacy 方法的 return View; 陳述式中設定中斷點。

    在舊版範本中,開啟 Privacy.cshtml.cs 檔案,並在 OnGet 方法中設定中斷點。

更新 Windows Server 上的瀏覽器安全性設定

若您使用較舊版本的 Windows Server,可能需要新增某些網域為受信任的網站,才能夠下載某些網頁伺服器元件。 移至 [網際網路選項]> [安全性]> [信任的網站]> [網站] 來新增信任的網站。 新增下列網域。

  • microsoft.com
  • go.microsoft.com
  • download.microsoft.com
  • iis.net

當您下載軟體時,可能會取得授與權限以載入各種網站指令碼和資源的要求。 有些資源並非必要,但為了簡化處理序,請在出現提示時選取 [新增]

在 Windows Server 上安裝 ASP.NET Core

  1. 在主控系統上安裝 .NET Core 裝載套件組合。 套件組合會安裝 .NET Core 執行階段、.NET Core 程式庫和 ASP.NET Core 模組。 如需更深入的指示,請參閱發佈至 IIS

    針對目前的 .NET Core 裝載套件組合,安裝 ASP.NET Core 裝載套件組合

    注意

    如果您先前已安裝 IIS,ASP.NET Core IIS 模組會隨 ASP.NET Core 一起安裝。 否則,請手動安裝 ASP.NET Core IIS 模組。

    針對 .NET Core 2,請安裝 .NET Core Windows Server 裝載

    注意

    如果系統沒有網際網路連線,請先取得並安裝 Microsoft Visual C++ 2015 可轉散發套件,再安裝 .NET Core Windows Server 裝載套件組合。

  2. 重新啟動系統 (或從命令提示字元依序執行 net stop was /ynet start w3svc,讓系統 PATH 的變更生效)。

選擇部署選項

如果您需要將應用程式部署至 IIS 的協助,請考慮下列選項:

  • 在 IIS 中建立發佈設定檔案,並在 Visual Studio 中匯入設定來進行部署。 在某些情況下,此方法是部署應用程式的快速方式。 當您建立發佈設定檔案時,會自動在 IIS 中設定權限。

  • 發佈至本機資料夾,並利用慣用方法將輸出複製到 IIS 上備妥的應用程式資料夾來進行部署。

(選擇性) 使用發佈設定檔進行部署

您可以使用此選項建立發佈設定檔案,並將其匯入 Visual Studio。

注意

此部署方法會使用必須安裝在伺服器上的 Web Deploy。 如果您要手動設定 Web Deploy,而不是匯入設定,您可以安裝 Web Deploy 3.6,而不是 Web Deploy 3.6 for Hosting Servers。 不過,如果您想要以手動方式來設定 Web Deploy,您必須確定已使用正確的值和權限來設定伺服器上的應用程式資料夾 (請參閱設定 ASP.NET 網站)。

設定 ASP.NET Core 網站

  1. 在 [IIS 管理員] 的左窗格中,選取 [連線] 底下的 [應用程式集區]。 開啟 [DefaultAppPool],然後將 [.NET CLR 版本] 設定為 [沒有受控程式碼]。 這是 ASP.NET Core 的必要項目。 預設網站會使用 DefaultAppPool。

  2. 停止並重新啟動 DefaultAppPool。

在 Windows Server 上安裝並設定 Web Deploy

Web Deploy 提供其他設定功能,可讓您從 UI 建立發佈設定檔案。

注意

Web Platform Installer 於 7/1/22 終結了生命週期。 如需詳細資訊,請參閱 Web Platform Installer - 終止支援和終結產品/應用程式摘要。 您可以直接安裝 Web Deploy 4.0 來建立發佈設定檔案。

  1. 如果您尚未安裝 IIS 管理指令碼及工具,請立即安裝。

    移至 [選取伺服器角色]>[網頁伺服器 (IIS)]>[管理工具],然後選取 [IIS 管理指令碼及工具] 角色並按一下 [下一步],再安裝該角色。

    安裝 IIS 管理指令碼及工具

    您需要這些指令碼及工具,才能產生發行設定檔。

    確定您也安裝 [管理服務] 和 [IIS 管理主況台] (可能已經安裝)。

  2. 在 Windows Server 上,下載 Web Deploy 4.0

  3. 執行 Web Deploy 安裝程式,並確定您選取 [完整] 安裝,而不是一般安裝。

    透過完整安裝,您會取得產生發佈設定檔案所需的元件。 (如果您改為選擇 [自訂],則可看到元件清單,如下圖所示。)

    顯示 Web Deploy 4.0 元件的螢幕擷取畫面

  4. (選用) 驗證 Web Deploy 是否正確執行,方法為開啟 [控制台] > [系統及安全性] >[系統管理工具] > [服務],然後確定:

    • Microsoft Deployment Agent 服務 正在執行 (舊版的服務名稱不同)。

    • Web 管理服務正在執行。

    如果其中一個代理程式服務不在執行中,請重新啟動 Web Deployment Agent 服務。

    如果完全沒有 Web Deployment Agent 服務,請移至 [控制台] > [程式集] > [解除安裝程式],尋找 Microsoft Web Deploy 版本。<> 選擇 [變更] 安裝,並確定您針對 Web Deploy 元件選擇 [將會安裝至本機硬碟]。 完成變更安裝步驟。

在 Windows Server 上的 IIS 中建立發行設定檔案

  1. 關閉並重新開啟 IIS 管理主控台,以在 UI 中顯示更新的組態選項。

  2. 在 IIS 中,以滑鼠右鍵按一下 [預設的網站],然後選擇 [部署]>[設定 Web Deploy 發行]

    設定 Web Deploy 組態

    如果沒有看到 [部署] 功能表,請參閱上一節以確認 Web Deploy 正在執行。

  3. 查看 [設定 Web Deploy 發行] 對話方塊中的設定。

  4. 按一下 [設定]

    在 [結果] 面板中,輸出顯示會將存取權限授與指定的使用者,並已在對話方塊顯示的位置中產生副檔名為 .publishsettings 的檔案。

    <?xml version="1.0" encoding="utf-8"?>
    <publishData>
      <publishProfile
        publishUrl="https://myhostname:8172/msdeploy.axd"
        msdeploySite="Default Web Site"
        destinationAppUrl="http://myhostname:80/"
        profileName="Default Settings"
        publishMethod="MSDeploy"
        userName="myhostname\myusername" />
    </publishData>
    

    根據您的 Windows Server 和 IIS 組態,您會在 XML 檔案中看到不同的值。 以下是您會看到有關這些值的一些詳細資料:

    • publishUrl 屬性中所參考的 msdeploy.axd 檔案是針對 Web Deploy 動態產生的 HTTP 處理常式檔案。 (基於測試目的,http://myhostname:8172 通常也適用)。

    • publishUrl 連接埠設定為連接埠 8172,這是 Web Deploy 的預設值。

    • destinationAppUrl 連接埠設定為連接埠 80,這是 IIS 的預設值。

    • 如果在稍後的步驟中,您無法使用主機名稱連線到 Visual Studio 中的遠端主機,請測試伺服器的 IP 位址以取代主機名稱。

      注意

      如果您要發行至 Azure VM 上執行的 IIS,您必須開啟 Web Deploy 的輸入連接埠及網路安全性群組中的 IIS。 如需詳細資訊,請參閱開啟虛擬機器的連接埠

  5. 將此檔案複製到您執行 Visual Studio 的電腦。

在 Visual Studio 中匯入發行設定並進行部署

  1. 在您已於 Visual Studio 中開啟 ASP.NET 專案的電腦上,以滑鼠右鍵按一下 [方案總管] 中的專案,然後選擇 [發行]

    如果您之前已設定任何發行設定檔,[發行] 窗格會隨即出現。 按一下 [新增] 或 [建立新的設定檔]

  2. 選取匯入設定檔的選項。

    在 [發佈] 對話方塊中,按一下 [匯入設定檔]

    選擇 [發行]

  3. 巡覽至您在上一節中所建立發行設定檔的位置。

  4. 在 [匯入發佈設定檔案] 方塊中,瀏覽至您在上一節中建立的設定檔並加以選取,然後按一下 [開啟]

    按一下 [完成] 以儲存發行設定檔,然後按一下 [發佈]

    Visual Studio 隨即開始部署程序,而 [輸出] 視窗會顯示進度和結果。

    如果您收到任何部署錯誤,請按一下 [更多動作]>[編輯] 來編輯設定。 修改設定,並按一下 [驗證] 來測試新的設定。 如果找不到主機名稱,請嘗試使用 IP 位址,而不是 [伺服器] 和 [目的地 URL] 欄位中的主機名稱。

    在 [發行] 工具中編輯設定

注意

如果您重新啟動 Azure VM,IP 位址可能會變更。

應用程式部署成功之後,它應該會自動啟動。

  • 如果部署之後應用程式未啟動,請在 IIS 中啟動該應用程式,確定它是否正確執行。
  • 針對 ASP.NET Core,請確定DefaultAppPool 的 [應用程式集區] 欄位設定為 [沒有受控程式碼]

當您準備好時,請切換至偵錯設定。

重要

如果您選擇對 [發行] 設定進行偵錯,則當您發佈時,會在 web.config 檔案中停用偵錯。

  1. 選取 [其他選項]>[編輯] 以編輯設定檔,然後選取 [設定]
  2. 選取 [儲存],然後重新發佈應用程式。
  3. 選取 [偵錯] 設定,然後選取 [檔案發佈] 選項下的 [移除目的地的其他檔案]。
  1. 選取 [編輯] 以編輯設定檔,然後選取 [設定]
  2. 選取 [儲存],然後重新發佈應用程式。
  3. 選取 [偵錯] 設定,然後選取 [檔案發佈] 選項下的 [移除目的地的其他檔案]。

警告

使用使用者名稱和密碼認證(基本身份驗證)不是最安全的驗證方法。 盡可能使用替代方法。 例如,請考慮從 Visual Studio 發佈至套件,然後使用 命令行WebDeploy.exe 來部署套件。 使用該方法,您可以使用 IIS 管理員來設定可發佈至網頁伺服器的授權 Windows 使用者,並在該 Windows 使用者帳戶下執行 WebDeploy.exe 。 請參閱 在 IIS 8.0 或更新版本上安裝及設定 Web Deploy。 如果您使用密碼認證,請務必使用強密碼,並保護密碼免於外泄或共用。

(選擇性) 發佈至本機資料夾以進行部署

如果您想要使用 PowerShell、RoboCopy 將應用程式複製到 IIS,或想要手動複製檔案,可以使用此選項來部署您的應用程式。

在 Windows Server 電腦上設定 ASP.NET Core 網站

如果您要匯入發佈設定,可以略過本節。

  1. 開啟 [Internet Information Services (IIS) 管理員] 並移至 [網站]

  2. 以滑鼠右鍵按一下 [預設的網站] 節點,並選取 [加入應用程式]

  3. 將 [別名] 欄位設為 MyASPApp,並將 [應用程式集區] 欄位設為 [無受控程式碼]。 將 [實體路徑] 設定為 C:\Publish (您稍後會部署 ASP.NET Core 專案的位置)。

  4. 在 IIS 管理員中選取網站,選擇 [編輯權限],並確認 IUSR、IIS_IUSRS 或已設定為應用程式集區的使用者是擁有「讀取和執行」權限的已授權使用者。

    若未看到這些具備存取權限的使用者其中之一,請執行步驟並新增 IUSR 為擁有「讀取和執行」權限的使用者。

重要

如需與內建帳戶相關的安全性資訊,請參閱 瞭解 IIS 7 中的內建使用者和組帳戶。

(選擇性) 從 Visual Studio 發佈至本機資料夾,以發佈及部署應用程式

如果您未使用 Web Deploy,則必須使用檔案系統或其他工具來發佈及部署應用程式。 您可以從使用檔案系統建立套件開始,然後以手動方式部署套件,或使用 PowerShell、Robocopy 或 XCopy 等其他工具部署套件。 在本節中,如果您未使用 Web Deploy,則我們假設您正在手動複製套件。

  1. 在 [方案總管] 中,以滑鼠右鍵按一下專案節點,然後選取 [發佈] (針對 [Web Forms],選取 [發佈 Web 應用程式])。

    如果您之前已設定任何發行設定檔,[發行] 窗格會隨即出現。 按一下 [新增設定檔]

  2. 在 [發佈] 對話方塊中,選取 [資料夾],按一下 [瀏覽],然後建立新的資料夾 (C:\Publish)。

    Visual Studio 中 [挑選發佈目標] 對話方塊的螢幕擷取畫面,其中已選取資料夾 'C:\Publish' 作為發佈目標。

    按一下 [完成] 以儲存發行設定檔。

    Visual Studio 中 [挑選發佈目標] 對話方塊的螢幕擷取畫面,其中已選取資料夾 'C:\Publish' 作為發佈目標。

    按一下 [完成] 以儲存發行設定檔。

  3. 切換至偵錯設定。

    選擇 [編輯] 以編輯設定檔,然後選擇 [設定]。 選擇 [偵錯] 設定,然後選擇 [檔案發佈] 選項下的 [移除目的地的其他檔案]。

    [發佈] 對話方塊中 [設定] 索引標籤的螢幕擷取畫面。[設定] 已設定為 [偵錯],而且已選取 [發佈] 按鈕。

    注意

    如果您使用 [發行] 組建,則當您發佈時,會在 web.config 檔案中停用偵錯。

  4. 按一下發行

    應用程式會將專案的 [偵錯] 設定發佈至本機資料夾。 進度會顯示在 [輸出] 視窗中。

  5. 將 ASP.NET 專案目錄從 Visual Studio 電腦複製到在 Windows 伺服器電腦上針對 ASP.NET 應用程式設定的本機目錄 (在此範例中,C:\Publish)。 在本教學課程中,我們假設您是以手動方式複製,但您可以使用 PowerShell、Xcopy 或 Robocopy 等其他工具。

    警告

    如果您需要對程式碼進行變更或重建,則您必須重新發行並重複此步驟。 您複製到遠端電腦的可執行檔必須完全符合您的本機來源和符號。 如果您未這麼做,則當您嘗試偵錯處理序時,將會在 Visual Studio 中收到 cannot find or open the PDB file 警告。

  6. 在 Windows Server 上,在瀏覽器中開啟應用程式,確認您可以正確執行應用程式。

    如果應用程式未正確執行,則您的伺服器與 Visual Studio 機器上所安裝的 ASP.NET 版本可能會不相符,或者您的 IIS 或網站設定可能有問題。 重新檢查先前的步驟。

在 Windows Server 上下載並安裝遠端工具

下載符合您 Visual Studio 版本的遠端工具版本。

在您要進行偵錯的遠端裝置或伺服器上 (而非 Visual Studio 機器上),從下表的連結中下載並安裝正確的遠端工具版本。

  • 請下載適用您的 Visual Studio 版本的遠端工具最新更新。 舊版遠端工具與較新的 Visual Studio 版本無法相容。 (例如,如果您使用 Visual Studio 2019,請下載 Visual Studio 2019 的遠端工具最新更新。在此情況下,請勿下載 Visual Studio 2022 的遠端工具。)
  • 下載遠端工具時,其結構須與您安裝工具所在的電腦相同。 例如,如果您想要在執行 x64 作業系統的遠端電腦上,對 x86 應用程式進行偵錯,請安裝 x64 遠端工具。 若要在 ARM64 作業系統上對 x86、ARM 或 x64 應用程式進行偵錯,請安裝 ARM64 遠端工具。
版本 連結 備註
Visual Studio 2022 遠端工具 與所有 Visual Studio 2022 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 ARM64)。 在較舊版本的 Windows Server 上,請參閱解除封鎖檔案下載以取得關於下載遠端工具的説明。
Visual Studio 2019 遠端工具 適用於 Visual Studio 2019 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 ARM64)。 在較舊版本的 Windows Server 上,請參閱解除封鎖檔案下載以取得關於下載遠端工具的説明。
Visual Studio 2017 遠端工具 適用於 Visual Studio 2017 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 ARM64)。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2015 遠端工具 適用於 Visual Studio 2015 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2013 遠端工具 Visual Studio 2013 文件中的下載頁面
Visual Studio 2012 遠端工具 Visual Studio 2012 文件中的下載頁面
版本 連結 備註
Visual Studio 2019 遠端工具 與所有 Visual Studio 2019 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 ARM64)。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。 如需最新版本的遠端工具,請開啟 Visual Studio 2022 文件
Visual Studio 2017 遠端工具 與所有 Visual Studio 2017 版本相容。 下載符合您裝置作業系統的版本 (x86、x64 (AMD64) 或 ARM64)。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2015 遠端工具 適用於 Visual Studio 2015 的遠端工具可從 My.VisualStudio.com 取得。 如果出現提示,請加入免費的 Visual Studio Dev Essentials 計畫,或使用您的 Visual Studio 訂閱識別碼登入。 在 Windows Server 上,請參閱將下載的檔案解除封鎖 ,以取得下載遠端工具的說明。
Visual Studio 2013 遠端工具 Visual Studio 2013 文件中的下載頁面
Visual Studio 2012 遠端工具 Visual Studio 2012 文件中的下載頁面

您可以將 msvsmon.exe 複製到遠端電腦 (而不是安裝遠端工具),來執行遠端偵錯工具。 不過,只有在安裝遠端工具時,才會出現遠端偵錯工具設定精靈 (rdbgwiz.exe)。 如果您想要以服務形式執行遠端偵錯工具,您可能需要使用精靈進行設定。 如需詳細資訊,請參閱 (選擇性) 將遠端偵錯工具設定為服務

注意

  • 若要對 ARM 裝置上的 Windows 10 或更新版的應用程式進行偵錯,請使用 ARM64,其可透過最新版本的遠端工具取得。
  • 若要對 Windows RT 裝置上的 Windows 10 應用程式進行偵錯,請使用 ARM,其只能在 Visual Studio 2015 遠端工具下載中取得。
  • 若要對 ARM64 作業系統上的 x64 應用程式進行偵錯,請執行隨著 ARM64 遠端工具一起安裝的 x64 msvsmon.exe。

在 Windows Server 上安裝遠端偵錯工具

  1. 在遠端電腦上,從 [開始] 功能表尋找並啟動 [遠端偵錯工具]。

    如果您沒有遠端電腦上的系統管理權限,請以滑鼠右鍵按一下 [遠端偵錯工具] 應用程式,然後選取 [以系統管理員身分執行]。 否則,只要正常啟動即可。

    如果您打算連結至以系統管理員身分執行的程序,或是在不同使用者帳戶下執行的程序,請以滑鼠右鍵按一下 [遠端偵錯工具] 應用程式,然後選取 [以系統管理員身分執行]。 如需詳細資訊,請參閱以系統管理員身分執行遠端偵錯工具

  2. 第一次啟動遠端偵錯工具時 (或設定遠端工具之前),遠端偵錯設定精靈會隨即出現。

    在大部分情況下,請一直選擇 [下一步],直到進入精靈的 [設定 Windows 防火牆] 頁面為止。

    遠端偵錯工具設定的螢幕擷取畫面。

    遠端偵錯工具設定的螢幕擷取畫面。

    如果沒有安裝 Windows Web 服務 API (只有在 Windows Server 2008 R2 上才會發生這種情況),請選取 [安裝] 按鈕。

  3. 請選取至少一個您想要在其中使用遠端工具的網路類型。 如果此電腦經由網域連線,您就必須選擇第一個項目。 如果電腦經由工作群組或家用群組連線,請視情況選擇第二個或第三個項目。

    接下來,選取 [完成] 以啟動遠端偵錯工具。

    接下來,選取 [設定遠端偵錯] 以啟動遠端偵錯工具。

  4. 設定完成時,[遠端偵錯工具] 視窗會隨即出現。

    遠端偵錯工具視窗的螢幕擷取畫面

    遠端偵錯工具視窗的螢幕擷取畫面

    遠端偵錯工具現在會等候連線。 使用顯示的伺服器名稱和連接埠號碼,在 Visual Studio 中設定遠端連線設定。

若要停止遠端偵錯工具,請選取 [檔案]>[結束]。 您可以從 [開始] 功能表或從命令列將其重新啟動:

<Remote debugger installation directory>\msvsmon.exe

注意

如果您需要為其他使用者新增權限、變更驗證模式或遠端偵錯工具的連接埠號碼,請參閱設定遠端偵錯工具

從 Visual Studio 電腦連接至 ASP.NET Core 應用程式

從 Visual Studio 2022 17.10 預覽版 2 開始,[連結至處理序] 對話框已變更。 如果您需要符合舊對話框的指示,請切換至 Visual Studio 2019 檢視 (文章中左上方的版本選取器)。

  1. 在 Visual Studio 電腦上,開啟您嘗試偵錯的解決方案 (如果您遵循本文中的所有步驟,則為 MyASPApp)。

  2. 在 Visual Studio 中選取 [偵錯] > [附加至處理序] (Ctrl + Alt + P)。

    提示

    在 Visual Studio 2017 和更新版本中,您可以重新附加至您先前附加的相同處理序,方法是使用 [偵錯] > [重新附加至處理序...] (Shift + Alt + P)。

  3. 將 [連線類型 設定為 [遠端 (Windows)]

    [連線 ion 目標] 選項隨即出現。

    將 [連線目標] 設定為<遠端電腦名稱>,然後按 Enter 鍵。

    確認 Visual Studio 會將必要的連接埠新增至電腦名稱,其顯示的格式為:<遠端電腦名稱>:port

    在 Visual Studio 2022 上,您應該會看到<遠端電腦名稱>:4026

    需要連接埠。 如果您沒有看到連接埠號碼,請手動新增。

  1. 在 Visual Studio 電腦上,開啟您嘗試偵錯的解決方案 (如果您遵循本文中的所有步驟,則為 MyASPApp)。

  2. 在 Visual Studio 中選取 [偵錯] > [附加至處理序] (Ctrl + Alt + P)。

    提示

    在 Visual Studio 2017 和更新版本中,您可以重新附加至您先前附加的相同處理序,方法是使用 [偵錯] > [重新附加至處理序...] (Shift + Alt + P)。

  3. 將 [限定詞] 欄位設定為<遠端電腦名稱>,然後按 Enter 鍵。

    確認 Visual Studio 會將必要的連接埠新增至電腦名稱,其顯示的格式為:<遠端電腦名稱>:port

    在 Visual Studio 2019 上,您應該會看到<遠端電腦名稱>:4024

    需要連接埠。 如果您沒有看到連接埠號碼,請手動新增。

  1. 選取重新整理

    您應該會看到有些處理程序會出現在 [可使用的處理序] 視窗。

    如果您沒有看到任何處理序,請嘗試使用 IP 位址,而不是遠端電腦名稱 (需要連接埠)。 您可以在命令列中使用 ipconfig 來取得 IPv4 位址。

    如果您想要使用 [尋找] 按鈕,可能需要在伺服器上開啟輸出 UDP 連接埠 3702

  2. 核取 [顯示所有使用者的處理序]

  3. 輸入處理序名稱的第一個字母,以快速尋找您的應用程式。

    • 如果您在 IIS 上使用同處理序裝載模型,請選取正確的 w3wp.exe 處理序。 從 .NET Core 3 開始,這是預設流程。

    • 否則,請選取 dotnet.exe 處理序。 (這是跨處理序裝載模型。)

    如果您有多個處理序顯示 w3wp.exedotnet.exe,請檢查 [使用者名稱] 資料行。 在某些情況下,[使用者名稱] 資料行會顯示您的應用程式集區名稱,例如 IIS APPPOOL\DefaultAppPool。 如果您看到應用程式集區,但其並非唯一的,請為您要偵錯的應用程式執行個體建立新的具名應用程式集區,然後即可輕鬆地在 [使用者名稱] 資料行中找到。

    [連結至處理序] 對話方塊的螢幕擷取畫面。

    [連結至處理序] 對話方塊的螢幕擷取畫面。

  4. 選取附加

  5. 開啟遠端電腦的網站。 在瀏覽器中,移至遠端電腦名稱。http://<>

    您應該會看到 ASP.NET 網頁。

  6. 在執行中的 ASP.NET 應用程式中,選取指向 [隱私權] 頁面的連結。

    應該在 Visual Studio 中叫用中斷點。

    如果您無法附加或叫用中斷點,請參閱針對遠端偵錯進行疑難排解

針對 IIS 部署進行疑難排解

  • 如果您無法使用主機名稱連線到主機,請改為嘗試 IP 位址。
  • 確定遠端伺服器上已開啟必要的連接埠。
  • 針對 ASP.NET Core,您必須先確定DefaultAppPool 的 [應用程式集區] 欄位設定為 [沒有受控程式碼]
  • 確認您應用程式中使用的 ASP.NET 版本與您在伺服器上安裝的版本相同。 針對您的應用程式,您可以在 [屬性] 頁面中檢視和設定版本。 若要將應用程式設定為不同的版本,則必須安裝該版本。
  • 如果應用程式嘗試開啟,但您看到憑證警告,請選擇信任網站。 如果您已經關閉警告,則可在專案中編輯發行設定檔 (*.pubxml 檔案) 並新增下列元素 (僅限測試):<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
  • 部署應用程式之後,請在 IIS 啟動應用程式,測試它是否已正確部署。
  • 檢查 Visual Studio 的 [輸出] 視窗以取得狀態資訊,然後檢查您的錯誤訊息。

在 Windows Server 上開啟必要的連接埠

在大部分的安裝程式中,安裝 ASP.NET 和遠端偵錯工具會開啟必要的連接埠。 不過,如果您要針對部署問題進行疑難排解,且應用程式裝載在防火牆後方,則可能需要確認已開啟正確的連接埠。

在 Azure VM 上,您必須透過以下方式開啟連接埠:

必要的連接埠:

  • 80 - IIS 的必要項目
  • UDP 3702 - (選用) 探索連接埠可讓您在附加至 Visual Studio 中的遠端偵錯工具時啟用 [尋找] 按鈕。 這必須是輸出埠 (輸出規則)。

此外,ASP.NET Core 安裝應該已經開啟這些連接埠:

  • 8172 - (選擇性) Web Deploy 從 Visual Studio 部署應用程式的必要項目