共用方式為


使用 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 應用程式][模型View-Controller],然後選擇 [下一步] 。 在下一個畫面上,將專案命名 MyASPApp,然後選擇 [下一步]

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

  2. 開啟 Controllers 資料夾中的 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 Runtime、.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 Hosting

    注意

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

  2. 重新啟動系統(或從命令提示符執行 net stop was /y,然後執行 net 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 管理文本和工具

    需要文稿和工具,才能產生發行配置檔。

    請確定您也安裝 Management ServiceIIS 管理主控台 (可能已安裝它們)。

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

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

    完成安裝時,您會取得產生發行配置檔所需的元件。 (如果您改為選擇 自定義,您可以看到元件清單,如下圖所示。

    顯示 Web Deploy 4.0 元件 的螢幕快照

  4. (選擇性)開啟 控制台 > [系統與安全性] > [管理工具] > [服務],確認 [Web Deploy] 已正確執行,然後確定:

    • Web 部署代理程式服務 正在執行(舊版的服務名稱不同)。

    • Web Management Service 正在執行。

    如果其中一個代理程式服務未執行,請重新啟動 Web 部署代理程式服務

    如果 Web 部署代理程式服務完全不存在,請移至 [控制面板] > [程式] > [卸載程式],尋找 Microsoft Web Deploy <版本>。 選擇 [變更] 安裝,並確定您選擇的 將會安裝至 Web Deploy 元件的本機硬碟。 完成變更安裝步驟。

在 Windows Server 上的 IIS 中建立發行配置檔

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

  2. 在 IIS 中,以滑鼠右鍵點擊 預設網站,選擇 部署>設定 Web Deploy 發佈功能

    設定 Web Deploy 組態

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

  3. 在 [設定 Web Deploy Publishing] 對話框中,檢查設定。

  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 檔案中看到不同的值。 以下是一些有關這些值的詳細資料:

    • msdeploy.axdpublishUrl 屬性中所參考的檔案是 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. 在開啟 ASP.NET 項目的電腦上,以滑鼠右鍵按一下 Visual Studio 方案總管中的項目,然後選擇 發佈

    如果您先前已設定任何發佈配置檔,[發佈] 窗格隨即出現。 點選 「新增」「建立新的設定檔」

  2. 選取匯入配置檔的選項。

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

    選擇 發佈

  3. 流覽至您在上一節中建立之發行配置檔的位置。

  4. 在 [匯入發行設定檔] 對話框中,找到並選擇您在上一節中建立的設定檔,然後點擊 [開啟]

    按一下 [完成] 以儲存發佈配置檔案,然後按一下 [發佈]。

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

    如果您收到任何部署錯誤,請點擊 更多動作>編輯 來編輯設定。 修改設定,然後按兩下 [驗證],以測試新的設定。 如果找不到主機名稱,請在[Server]和[目的地 URL]字段中使用IP位址代替主機名稱。

    [發佈工具] 中的 [編輯設定]

注意

如果您重新啟動 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) 管理員,然後移至 Sites

  2. 以滑鼠右鍵按兩下 [預設網站] 節點,然後選取 [新增應用程式]。

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

  4. 在 IIS 管理員中選取網站後,選擇 [編輯許可權],並確定 [IUSR]、[IIS_IUSRS] 或 [應用程式集區] 設定的使用者是具有讀取 & 執行許可權的授權使用者。

    如果您沒有看到其中一個具有存取權的使用者,請逐步將 IUSR 新增為具有讀取 & 執行許可權的使用者。

重要

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

(選擇性)從 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 Server 電腦上為 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. 在遠端電腦上,從 [開始 ] 功能表尋找並啟動遠端調試程式

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

    如果您打算連線到以系統管理員身分執行的程序,或是在不同的使用者帳戶下執行(例如 IIS),請以滑鼠右鍵點擊 遠端調試程式 應用程式,然後選取 以系統管理員身分執行。 如需詳細資訊,請參閱 以系統管理員身分執行遠端調試程式

  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 版 Preview 2 開始,[附加至進程] 對話框已變更。 如果您需要符合舊對話框的指示,請切換至 Visual Studio 2019 檢視(文章中的左上方版本選取器)。

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

  2. 在 Visual Studio 中,選取 Debug > 附加至程序 (Ctrl + Alt + P)。

    提示

    在 Visual Studio 2017 及以後的版本中,您可以使用 偵錯 > 重新附加至程序... (Shift + Alt + P)來重新附加至您先前附加的相同程序。

  3. 連線類型 設定為 Remote (Windows)

    連線目標 選項隨即出現。

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

    確認 Visual Studio 會將必要的埠新增至電腦名稱,其格式如下:<遠端電腦名稱>:port

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

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

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

  2. 在 Visual Studio 中,選取 [偵錯] > [附加至程序] Ctrl + Alt + P。

    提示

    在 Visual Studio 2017 和更新版本中,您可以使用 Debug > 重新附加至 Process... (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 的應用程式集區字段已設定為 No Managed Code
  • 確認應用程式中所使用的 ASP.NET 版本與您安裝在伺服器上的版本相同。 針對您的應用程式,您可以在 [屬性] 頁面中檢視和設定版本。 若要將應用程式設定為不同的版本,則必須安裝該版本。
  • 如果應用程式嘗試開啟,但您會看到憑證警告,請選擇信任網站。 如果您已經關閉警告,您可以在專案中編輯發行配置檔 *.pubxml 檔案,並新增下列元素(僅供測試):<AllowUntrustedCertificate>true</AllowUntrustedCertificate>
  • 部署應用程式之後,請在 IIS 中啟動應用程式,以測試其已正確部署。
  • 檢查 Visual Studio 中的 [輸出] 視窗以取得狀態資訊,並檢查您的錯誤訊息。

在 Windows Server 上開啟必要的埠

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

在 Azure 虛擬機器 (VM) 上,您必須開啟端口,通過以下方式:

必要的埠:

  • 80 - IIS 的必要條件
  • 4024 - Visual Studio 2019 遠端偵錯所需的項目(如需詳細資訊,請參閱 遠端偵錯埠配置)。
  • UDP 3702 - (選擇性) 探索埠可以讓您在 Visual Studio 中連接遠端調試器時使用 [尋找] 按鈕。 這必須是輸出埠(輸出規則)。

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

  • 8172 - (選用) 需要 Web Deploy 才能從 Visual Studio 部署應用程式