最近兩天在Linux中除錯.NET Core應用程式,同時我發現在Linux中除錯.NET Core應用程式并不容易,一直習慣在Visual Studio中進行編碼和除錯,現在我想的是可以簡單快速的測驗.NET Core應用在Linux,所以通過本篇文章我們能了解到如何在Windows中使用Visual Studio進行遠程除錯我們部署在Linux中的應用程式,從而我們可以去發現或者說去除錯在中會產生的一些問題,
Windows中的Linux:Hello WSL
子系統從這里我不做過多的介紹了,大家有興趣的話可以從 https://docs.microsoft.com/en-us/windows/wsl/about 中了解一下,
第一步從windows開啟wsl

我們可以搜到他并打開

打開后我們可以看到如下內容

因為一會我需要對他進行除錯所以我這邊選擇的是DEBUG

通過上面一波操作后我們需要做的是在WSL提示符下,輸入dotnet并加上我們的應用程式集名稱

現在我們已經將我們的應用程式發布到了linux中如下所示

如何附加到正在運行的Linux應用程式
正如上面所述,我想要做的是在Visual Studio中除錯Linux應用程式,那么下面我們來看一下附加

SSH連接型別將與具有以下通信架構的WSL一起使用:

我們需要安裝vsdbg除錯器,然后通過SSH通到將命令發送到Linux除錯器,
- 默認情況下,SSH服務器與WSL一起安裝,但是,我無法使整個管道都可以使用,因此必須卸載并重新安裝它:
sudo apt-get remove openssh-server
sudo apt-get install openssh-server
- 更改SSH配置,以允許 Visual Studio所需的用戶名/密碼型別的安全性,如果不知道如何有效地使用vi來簡單地編輯檔案,請安裝nano
sudo apt-get install nano
- 在/etc/ssh/sshd_config中,更改PasswordAuthentication設定
sudo nano /etc/ssh/sshd_config
PasswordAuthentication yes
- 重啟SSH服務器
sudo service ssh start
- 安裝解壓縮才能獲取vsdbg
sudo apt-get install unzip
curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
現在我們可以選擇SSH作為連接型別,同時需要點擊“重繪”按鈕將這些資訊填充,如下所示:

單擊“重繪”按鈕后,底部的串列應包含在WSL中運行的Linux行程,

選擇.NET Core應用程式,然后單擊附加選擇托管除錯器:

當我們在代碼中設定斷點之后,并且觸發我們設定的斷點就會達到如下效果:

通過上面內容來說我們以達到了我們預期的想法,我們可以通過Visual Studio借助WSL進行除錯Linux應用程式,當然對于這一塊我也在尋找更便捷的方式,當然我還發現一個
.NET Core Debugging with WSL 2.
Reference
https://www.hanselman.com/blog/RemoteDebuggingANETCoreLinuxAppInWSL2FromVisualStudioOnWindows.aspx
https://devblogs.microsoft.com/devops/debugging-net-core-on-unix-over-ssh/
https://medium.com/criteo-labs/wsl-visual-studio-attaching-launching-a-linux-net-core-application-on-my-window-10-ab21c179702d
https://github.com/Microsoft/MIEngine/wiki/Offroad-Debugging-of-.NET-Core-on-Linux---OSX-from-Visual-Studio
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/3528.html
標籤:.NET Core
上一篇:(三)學習了解OrchardCore筆記——靈魂中間件ModularTenantContainerMiddleware的第一行①的模塊部分
