使用 SSH 在 Linux 上遠程調試 .NET Core 實例 演示


必備條件

在 Visual Studio 計算機上,需要安裝ASP.NET 和 web 開發工作負荷或 .net Core 跨平台開發工作負荷。

在 Linux 服務器上,需要安裝 SSH 服務器,並將其解壓縮,並安裝 wget。 例如,在 Ubuntu 上,可以通過運行以下內容來實現此目的:

sudo apt-get install openssh-server unzip curl

yum install openssh-server

 

生成並部署應用程序

准備應用程序以進行調試:

  • 請考慮在生成應用程序時使用調試配置。 調試零售編譯的代碼(發布配置)比調試編譯的代碼更難。 如果需要使用 Release 配置,請先禁用僅我的代碼。 若要禁用此設置,請選擇 "工具" > 選項" > 調試",然后取消選中 "啟用僅我的代碼"。

  • 請確保將項目配置為生成可移植的 pdb (這是默認設置),並確保 PBD 與 DLL 位於同一位置。 若要在 Visual Studio 中配置此項,請右鍵單擊該項目,然后選擇 "屬性" > 生成 > 高級 > 調試信息"。

在調試之前,可以使用多種方法來部署應用。 例如,你能夠:

  • 將源復制到目標計算機,並在 Linux 計算機上生成 dotnet build

  • 在 Windows 上生成應用程序,並將生成項目傳輸到 Linux 計算機。 (生成項目由應用程序本身、它可能依賴的任何運行庫以及 .deps.json文件組成。)

 

附加調試器

配置計算機后,在 Linux 計算機上啟動該應用程序,然后便可以附加該調試器。

  1. 在 Visual Studio 中,選擇 "調試" > "附加到進程 ... "。

  2. 在 "連接類型" 列表中,選擇 " SSH"。

  3. 將連接目標更改為目標計算機的 IP 地址或主機名。

  4. 查找要調試的進程。

    你的代碼在唯一進程名稱或名為 dotnet 的進程中運行。 若要查找你感興趣的進程,請檢查 " Title " 列,其中顯示了該進程的命令行參數。

    在下面的示例中,將在 "附加到進程" 對話框中顯示的 SSH 傳輸上看到遠程 Linux 計算機上的進程列表。

  5. 選擇 “附加” 。

  6. 在出現的對話框中,選擇要調試的代碼類型。 選擇 "托管(.Net Core For Unix) "。

  7. 使用 Visual Studio 調試功能來調試應用程序。

    在下面的示例中,你將看到 Visual Studio 調試器在遠程 Linux 計算機上運行的代碼的斷點處停止。

 

改造程序我這里用的是控制台這塊方便附加時間等待

 

 

發布

 

 這些文件考進linux(linux 需要安裝 netcore環境 )下面是CenterOS 安裝方法

其他系統參考這個官方文檔

https://docs.microsoft.com/zh-cn/dotnet/core/install/linux-package-manager-ubuntu-1910

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
sudo yum install aspnetcore-runtime-3.1
sudo yum install dotnet-runtime-3.1

 

 

 運行

dotnet test.dll

這里會暫停住 我們開始遠程連接

 

 

打開 vs 

 

 https://docs.microsoft.com/zh-cn/visualstudio/debugger/remote-debugging?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev16.query%3FappId%3DDev16IDEF1%26l%3DZH-CN%26k%3Dk(vs.debug.remote.overview)%26rd%3Dtrue&view=vs-2019

這個連接需要下載安裝

 

 有時點擊查找無法發現 linux (此處很坑)我弄了很久很久很久。。。。。后來發現 不要點擊查找

返回 點擊 刷新

 

 

 

 

 

 然后 返回 shell 回車

 

 

進入斷點 調試開始。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM