在 Visual Studio 中對遠端 IIS 電腦進行 ASP.NET Core 的遠端偵錯
若要偵錯已部署至 IIS 的 ASP.NET Core 應用程式,請在部署應用程式的電腦上安裝並執行遠端工具,然後從 Visual Studio 附加至執行中的應用程式。
本指南說明如何設定及設定 Visual Studio ASP.NET Core、將其部署至 IIS,以及從 Visual Studio 附加遠端調試程式。 若要遠端偵錯 ASP.NET 4.8,請參閱 IIS 電腦上的遠端偵錯 ASP.NET 。 您也可以使用 Azure 在 IIS 上部署和偵錯。 針對 Azure App Service,請參閱 azure 上的 遠端偵錯 ASP.NET Core,或針對 Visual Studio Enterprise,請使用 快照調試程式 (.NET 4.6.1 必要)。
先決條件
需要 Visual Studio 2019 或更新版本,才能遵循本文所示的步驟。
這些程式已在這些伺服器組態上進行測試:
- Windows Server 2022 和 IIS 10
- Windows Server 2019 和 IIS 10
- Windows Server 2016 和 IIS 10
網路需求
不支援透過 Proxy 連線的兩部電腦之間進行偵錯。 不建議在高延遲或低頻寬的連線上進行除錯,例如使用撥接上網,或是跨國家/地區透過互聯網進行除錯,這樣可能會導致失敗或速度慢得無法接受。 如需完整的需求清單,請參閱 需求。
已在 IIS 中執行的應用程式?
本文包含在 Windows 伺服器上設定 IIS 的基本設定,以及從 Visual Studio 部署應用程式的步驟。 這些步驟包含在內,以確保伺服器已安裝必要的元件、應用程式可以正確執行,而且您已準備好進行遠端偵錯。
如果您的應用程式在 IIS 中執行,而您只想下載遠端調試程式並開始偵錯,請移至 下載並安裝 Windows Server 上的遠端工具。
如果您想要協助確定已在 IIS 中正確設定、部署及執行您的應用程式,以便進行偵錯,請遵循本文中的所有步驟。
在 Visual Studio 電腦上建立 ASP.NET Core 應用程式
建立新的 ASP.NET Core Web 應用程式。
在 Visual Studio 中,選擇 [檔案]>[開始] 視窗 開啟 [開始] 視窗,然後選擇 [[建立新專案]。 在搜尋方塊中,輸入 Web 應用程式,然後選擇 C# 作為語言,然後選擇 [ASP.NET Core Web 應用程式][模型View-Controller],然後選擇 [下一步] 。 在下一個畫面上,將專案命名 MyASPApp,然後選擇 [下一步] 。
選擇建議的目標架構或 .NET 8,然後選擇 建立。 版本必須符合伺服器上所安裝的版本。
開啟 Controllers 資料夾中的 HomeController.cs 檔案,並在
Privacy
方法的return View;
語句中設定斷點。在舊版範本中,開啟 Privacy.cshtml.cs 檔案,並在
OnGet
方法中設定斷點。
在 Windows Server 上安裝及設定 IIS
這些步驟只會顯示 IIS 的基本設定。 如需更深入的資訊或安裝到 Windows 桌面電腦,請參閱 發行至 IIS 或 IIS 8.0 使用 ASP.NET 3.5 和 ASP.NET 4.5。
針對 Windows Server 操作系統,請使用 [新增角色及功能] 精靈,透過 Server Manager中的 [管理] 連結或 [儀表板] 連結。 在 [伺服器角色] 步驟上,勾選 Web Server (IIS)的方塊。
(Windows Server 2022)在出現的對話框中,選擇 [[新增功能] 來新增 IIS 管理控制台。
在 角色服務 步驟中,選取您想要的 IIS 角色服務,或接受提供的預設角色服務。 如果您想要使用發佈設定和 Web Deploy 來啟用部署,請確定已選取下列功能:
- IIS 管理文本和工具
- 管理服務
- IIS 管理主控台
請繼續進行確認步驟,以安裝 Web 伺服器角色和服務。 安裝網頁伺服器 (IIS) 角色之後,不需要重新啟動伺服器/IIS。
更新 Windows Server 上的瀏覽器安全性設定
如果您使用舊版 Windows Server,您可能需要將某些網域新增為信任的網站,才能下載部分網頁伺服器元件。 移至 [因特網選項] > [安全性] > [信任的網站] > [網站]來新增信任的網站。 新增下列網域。
- microsoft.com
- go.microsoft.com
- download.microsoft.com
- iis.net
當您下載軟體時,可能會收到授與許可權以載入各種網站腳本和資源的要求。 有些資源並非必要,但為了簡化程式,請在出現提示時選取 [新增]。
在 Windows Server 上安裝 ASP.NET Core
在裝載系統上安裝 .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 寄存。
注意
如果系統沒有因特網連線,請先取得並安裝 Microsoft Visual C++ 2015 可轉散發套件,再安裝 .NET Core Windows Server 裝載套件組合。
重新啟動系統(或執行 net stop 為 /y,然後從命令提示字元 net start w3svc,以取得系統 PATH 的變更)。
選擇部署選項
如果您需要將應用程式部署至 IIS 的協助,請考慮下列選項:
在 IIS 中建立發行配置檔,並在 Visual Studio 中匯入設定,以部署 。 在某些情況下,這是部署應用程式的快速方式。 當您建立發佈配置檔時,許可權會自動在 IIS 中設定。
藉由發佈至本機資料夾,並將慣用方法的輸出複製到 IIS 上備妥的應用程式資料夾來部署。
(選擇性)使用發佈配置檔進行部署
您可以使用此選項建立發行配置檔,並將其匯入 Visual Studio。
注意
如果您想要手動設定 Web Deploy,而不是匯入發布設定,您必須確定伺服器上的應用程式資料夾已設定正確的值和許可權(請參閱 設定 ASP.NET 網站)。
設定 ASP.NET Core 網站
在 [IIS 管理員] 的左窗格中,於 [連線] 底下,選取 [應用程式集區] 。 開啟 DefaultAppPool,並將 .NET CLR 版本 設定為 [無 Managed 程式代碼]。 這是 ASP.NET Core 的必要條件。 默認網站會使用DefaultAppPool。
停止並重新啟動DefaultAppPool。
在 Windows Server 上安裝及設定 Web Deploy
Web Deploy 提供額外的組態功能,可讓您從UI建立發佈配置檔。
注意
Web Platform Installer 於 7/1/22 達到生命周期結束。 如需詳細資訊,請參閱 Web Platform Installer - 終止支援和終止產品/應用程式摘要。 您可以直接安裝 Web Deploy 4.0 來建立發佈配置檔。
如果您尚未 IIS 管理文本和工具安裝,請立即安裝。
移至 [選取 [網頁伺服器角色]>[IIS]>[管理工具]],然後選取 [IIS 管理腳本和工具 角色],按兩下 [[下一步]],然後安裝角色。
需要文稿和工具,才能產生發行配置檔。
請確定您也安裝 Management Service 和 IIS 管理主控台 (可能已安裝它們)。
在 Windows Server 上,下載 Web Deploy 4.0。
執行 Web Deploy 安裝程式,並確定您選取 完成 安裝,而不是一般安裝。
完成安裝時,您會取得產生發行配置檔所需的元件。 (如果您改為選擇 自定義,您可以看到元件清單,如下圖所示。
的螢幕快照
(選擇性)開啟 控制台 > 系統與安全性 > 系統管理工具 > 服務,確認 [Web Deploy] 是否已正確執行,然後確定:
Web 部署代理程式服務 正在執行(舊版的服務名稱不同)。
Web Management Service 正在執行。
如果其中一個代理程式服務未執行,請重新啟動 Web 部署代理程式服務。
如果 Web 部署代理程式服務完全不存在,請移至 [控制面板] > [程式] > [卸載程式],尋找 Microsoft Web Deploy <版本>。 選擇 [變更] 安裝,並確定您選擇的 將會安裝至 Web Deploy 元件的本機硬碟。 完成變更安裝步驟。
在 Windows Server 上的 IIS 中建立發行配置檔
關閉並重新開啟 IIS 管理主控台,以在 UI 中顯示更新的組態選項。
在 IIS 中,以滑鼠右鍵點擊 預設網站,選擇 部署>設定 Web Deploy 發布。
如果您沒有看到 [部署] 功能表,請參考上一節以確認 Web Deploy 是否正在執行。
在 [設定 Web Deploy Publishing] 對話框中,檢查設定。
按下 設定。
在 [結果] 面板中,輸出顯示已授予指定使用者的存取權限,同時在對話框中顯示的位置生成具有 .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.axd
publishUrl
屬性中所參考的檔案是 Web Deploy 動態產生的 HTTP 處理程式檔案。 (為了測試目的,http://myhostname:8172
也正常工作。)publishUrl
埠會設定為埠 8172,這是 Web Deploy 的預設值。destinationAppUrl
埠會設定為埠 80,這是 IIS 的預設值。如果在後續步驟中,您無法使用主機名從 Visual Studio 連線到遠端主機,請測試伺服器的 IP 位址以取代主機名。
將此檔案複製到您執行 Visual Studio 的電腦。
在 Visual Studio 中匯入發佈設定並部署
在開啟 ASP.NET 專案的電腦上,於 Visual Studio 的 [方案總管] 中以滑鼠右鍵點擊專案,然後選擇 [發佈]。
如果您先前已設定任何發佈配置檔,[發佈] 窗格隨即出現。 點選 新增 或 建立新的設定檔。
選取匯入配置檔的選項。
在 [發佈] 對話框中,按一下 [匯入設定檔] 。
流覽至您在上一節中建立之發行配置檔的位置。
在 [匯入發行配置檔] 對話框中,瀏覽至您在上一節中建立的配置檔,然後點擊 [開啟]。
按一下 [完成],以儲存發佈設定檔,然後按一下 [發佈]。
Visual Studio 會開始部署程式,[輸出] 視窗會顯示進度和結果。
如果您收到任何部署錯誤,請點擊 更多動作>編輯 來編輯設定。 修改設定,然後按兩下 [驗證],以測試新的設定。 如果找不到主機名,請在 [Server] 和 [目的地 URL] 欄位中使用 IP 位址代替主機名。
成功部署應用程式之後,它應該會自動啟動。
- 如果應用程式在部署後未啟動,請在 IIS 中啟動應用程式,以確認它是否正常執行。
- 針對 ASP.NET Core,請確保 DefaultAppPool 的應用程式集區欄位設為 不含托管代碼。
當您準備好時,請切換至偵錯組態。
重要
如果您選擇偵錯發行組態,請在發佈時停用 web.config 檔案中的偵錯。
- 選取 其他選項>編輯 以編輯個人檔案,然後選取 設定。
- 選取 儲存,然後重新發布 App。
- 選取 [偵錯 組態],然後在 [檔案發佈] 選項底下,選取 [在目的地移除其他檔案]。
- 選擇 [編輯] 以編輯設定檔,然後選擇 [設定]。
- 選取 儲存,然後重新發佈應用程式。
- 選取 [偵錯 組態],然後在 [檔案發佈] 選項中,選取 [在目的地移除其他檔案]。
警告
使用使用者名稱和密碼認證(基本身份驗證)不是最安全的驗證方法。 盡可能使用替代方法。 例如,請考慮從 Visual Studio 發佈至套件,然後使用命令行 WebDeploy.exe 來部署套件。 使用該方法,您可以使用 IIS 管理員來設定可發佈至網頁伺服器的授權 Windows 使用者,並在該 Windows 使用者帳戶下執行 WebDeploy.exe。 請參閱 在 IIS 8.0 或更新版本上安裝及設定 Web Deploy。 如果您使用密碼認證,請務必使用強密碼,並保護密碼免於外泄或共用。
(選擇性)藉由發佈至本機資料夾進行部署
如果您想要使用 PowerShell、RoboCopy 將應用程式複製到 IIS,或想要手動複製檔案,您可以使用此選項來部署您的應用程式。
在 Windows Server 計算機上設定 ASP.NET Core 網站
開啟 Windows 檔案總管並建立新的資料夾,C:\Publish,以用來部署 ASP.NET Core 專案。
如果尚未開啟 Internet Information Services (IIS) 管理工具,請開啟它。 (在 [伺服器管理員] 的左窗格中,選取 [IIS]。 右鍵點選伺服器,然後選取 [Internet Information Services (IIS) 管理器。
在左窗格中的 [連線] 下,移至 [網站]。
選取 預設網站,選擇 [基本設定],並將 [實體路徑] 設定為 [C:\Publish]。
以滑鼠右鍵按兩下 [預設網站] 節點,然後選取 [新增應用程式]。
將 [別名] 字段設定為 [MyASPApp]、接受默認應用程式集區 (DefaultAppPool),並將 [實體路徑] 設定為 C:\Publish。
在 [連線] 下,選取 [應用程式集區]。 開啟 [DefaultAppPool],並將 [應用程式集區] 欄位設定為 [無受管理程式代碼]。
以滑鼠右鍵單擊 IIS 管理員中的新網站,選擇 [編輯許可權] ,並確定 IUSR、IIS_IUSRS 或設定存取 Web 應用程式的使用者是具有讀取 & 執行許可權的授權使用者。
如果您沒有看到其中一個具有存取權的使用者,請逐步將 IUSR 新增為具有讀取 & 執行許可權的使用者。
重要
如需與內建帳戶相關的安全性資訊,請參閱 瞭解 IIS 7中的 Built-In 使用者和組帳戶。
從 Visual Studio 發佈至本機資料夾,以發布和部署應用程式
您也可以使用檔案系統或其他工具發佈和部署應用程式。
在 [方案總管]中,以滑鼠右鍵按一下專案節點,然後選取 [發佈](對於 Web Forms,選取 [發佈 Web 應用程式])。
如果您先前已設定任何發佈設定檔,[發佈] 窗格隨即出現。 點選「新增個人資料」。
在 [發佈] 對話框中,選取 [資料夾],按兩下 [瀏覽],然後建立新的資料夾,C:\Publish。
按一下 完成 以儲存發佈設定檔。
按一下 「完成」 以儲存發佈設定檔。
切換至偵錯組態。
選擇 [編輯 ] 編輯設定檔,然後選擇 [設定] 。 選擇 [偵錯 組態],然後選擇 [在目的地 移除其他檔案],在 [檔案發佈] 選項底下。
注意
如果您使用發行組建,請在發行時停用 web.config 檔案中的偵錯。
點選 發佈。
應用程式會將專案的 偵錯 組態發佈至本機資料夾。 進度會顯示在 [輸出] 視窗中。
將 ASP.NET 項目目錄從 Visual Studio 計算機複製到 Windows Server 電腦上為 ASP.NET 應用程式設定的本機目錄(在此範例中,C:\Publish)。 在本教學課程中,我們假設您手動複製,但您可以使用PowerShell、Xcopy或Robocopy等其他工具。
謹慎
如果您需要變更程式碼或重建,您必須重新發佈並重複此步驟。 您複製到遠端電腦的可執行檔案必須完全符合本機來源和符號。 如果您沒有這麼做,當您嘗試偵錯程式時,將會在 Visual Studio 中收到
cannot find or open the PDB file
警告。在 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 上設定遠端調試程式
在遠端電腦上,從 [開始 ] 功能表尋找並啟動遠端調試程式。
如果您沒有遠端電腦上的管理員權限,請以滑鼠右鍵按 遠端除錯程式 應用程式,然後選取[以系統管理員身分執行 ]。 否則,只要正常啟動即可。
如果您打算附加至以系統管理員身分執行的進程,或是在不同的使用者帳戶下 (例如 IIS) 執行,請以滑鼠右鍵點擊 遠端除錯器應用程式,然後選取 [以系統管理員身分執行] 。 如需詳細資訊,請參閱 以系統管理員身分執行遠端調試程式。
第一次啟動遠程調試程式(或設定之前),遠端偵錯組態 精靈隨即出現。
在大部分情況下,請選擇 [下一步],直到您進入精靈的 [設定 Windows 防火牆] 頁面 為止。
如果未安裝 Windows Web Services API,這只會發生在 Windows Server 2008 R2 上,請選取 [安裝] 按鈕。
選取至少一個您想要使用遠端工具的網路類型。 如果電腦是透過網域連線,您必須選擇第一個選項。 如果計算機是透過工作組或家庭群組連線,請視需要選擇第二或第三個專案。
接下來,選取 完成 以啟動遠端調試程式。
接下來,選取 [設定遠端偵錯 以啟動遠端調試程式。
設定完成時,[遠端調試程式] 視窗隨即出現。
遠端調試程式現在正在等候連線。 使用顯示的伺服器名稱和埠號碼,在 Visual Studio 中設定遠端聯機組態。
若要停止遠端除錯程式,請選擇 檔案>結束。 您可以從 [開始] 選單,或從命令行將它重新啟動:
<Remote debugger installation directory>\msvsmon.exe
注意
如果您需要為其他使用者新增許可權、變更驗證模式或遠端調試程式的埠號碼,請參閱 設定遠端調試程式。
如需執行遠端除錯程式即服務的資訊,請參閱 執行遠端調試程式即服務。
從 Visual Studio 電腦連接至 ASP.NET Core 應用程式
從 Visual Studio 2022 17.10 版 Preview 2 開始,[附加至進程] 對話框已變更。 如果您需要符合舊對話框的指示,請切換至 Visual Studio 2019 檢視(文章中的左上方版本選取器)。
在 Visual Studio 計算機上,如果您遵循本文中的所有步驟,請開啟您嘗試偵錯的解決方案(MyASPApp)。
在 Visual Studio 中,選取 [偵錯] > [附加至程序] [Ctrl + Alt + P]。
提示
在 Visual Studio 2017 和更新版本中,您可以使用 Debug > 重新附加至 Process... (Shift + Alt + P) 重新附加至您先前附加的相同進程。
將 連線類型 設定為 Remote (Windows)。
連線目標 選項隨即出現。
將 連線目標 設定為 <遠端電腦名稱>,然後按 Enter。
確認 Visual Studio 會將必要的埠新增至計算機名稱,其格式如下:<遠端電腦名稱>:埠
在 Visual Studio 2022 上,您應該會看到 <遠端電腦名稱>:4026
需要埠。 如果您沒有看到埠號碼,請手動新增。
在 Visual Studio 計算機上,如果您遵循本文中的所有步驟,請開啟您嘗試偵錯的解決方案(MyASPApp)。
在 Visual Studio 中,選取 [偵錯] > [附加至程序] (Ctrl + Alt + P)。
提示
在 Visual Studio 2017 和更新版本中,您可以使用 Debug > 重新附加至 Process... (Shift + Alt + P) 重新附加至您先前附加的相同進程。
將 [限定符] 欄位設定為 <遠端電腦名稱>,然後按下 Enter。
確認 Visual Studio 會將必要的埠新增至電腦名稱,其格式如下:<遠端電腦名稱>:port
在 Visual Studio 2019 上,您應該會看到 <遠端電腦名稱>:4024
需要埠。 如果您沒有看到埠號碼,請手動新增。
選取 [重新整理] 。
您應該會在 [可用的進程 視窗中看到一些進程。
如果您沒有看到任何進程,請嘗試使用IP位址,而不是遠端電腦名稱(需要埠)。 您可以在命令列中使用
ipconfig
來取得 IPv4 位址。如果您想要使用 [尋找 ] 按鈕,您可能需要在伺服器上 開啟輸出 UDP 連接埠 3702。
檢查 顯示所有使用者的進程。
輸入程式名稱的第一個字母,以快速尋找您的應用程式。
如果您在 IIS 上使用 進程內代管模型,請選取正確的 w3wp.exe 進程。 從 .NET Core 3 開始,此流程是預設值。
否則,請選取 dotnet.exe 程式。 (這是外部進程裝載模型。)
如果您有多個程序顯示 w3wp.exe 或 dotnet.exe,請檢查 用戶名稱 欄。 在某些情況下,用戶名稱 資料行會顯示您的應用程式集區名稱,例如 IIS APPPOOL\DefaultAppPool。 如果您看到應用程式集區,但並不是唯一的,請為您要偵錯的應用程式實例建立新的具名應用程式集區,然後在 [使用者名稱] 資料行中輕鬆找到它。
選取 附加。
開啟遠端電腦的網站。 在瀏覽器中,移至 http://<遠端電腦名稱>。
您應該會看到 ASP.NET 網頁。
在執行中的 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(HTTP)的必要條件。
- 4026:Visual Studio 2022 遠端調試的必要條件(詳情請參閱 遠端調試程式埠指派)。
- 4024:Visual Studio 2019 遠端偵錯所需(如需詳細資訊,請參閱 遠端調試程式埠分配)。
- UDP 3702:(選用)探索埠可讓您在連接至 Visual Studio 中的遠端偵錯工具時,使用[尋找] 按鈕。
此外,ASP.NET 安裝應該已經開啟這些埠:
- 8172:Web Deploy 從 Visual Studio 部署應用程式的必要專案
開啟埠
若要在 Windows Server 上開啟埠,請開啟 [開始功能表 ],搜尋 Windows Defender 防火牆 或 具有進階安全性的 Windows 防火牆。
針對 Windows Defender 防火牆,請選擇 [進階設定] 。
然後選擇 [輸入規則] > [新增規則] > [連接埠],然後選取 [下一步]。 (針對 UDP 3702,請改選 輸出規則。)
在 [特定本機埠下,輸入埠號碼,選取 [下一步]。
選取 允許連線,選取 下一步。
選擇一種或多種網路類型來啟用埠,然後選取 下一步。
您選取的類型必須包含遠端電腦所連線的網路。
為輸入規則新增名稱(例如,IIS、Web Deploy或 msvsmon),然後選取 [完成]。
您應該會在 [輸入規則] 或 [輸出規則] 清單中看到新的規則。
如果您要設定 Windows 防火牆的詳細資訊,請參閱 設定 Windows 防火牆以進行遠端偵錯。
為其他必要埠建立更多規則。