最近兩天在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一起安裝。但是,我無法使整個管道都可以使用,因此必須卸載并重新安裝它:
1
2
3
|
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設置
1
2
3
|
sudo nano /etc/ssh/sshd_config passwordauthentication yes |
重啟ssh服務器
sudo service ssh start
安裝解壓縮才能獲取vsdbg
1
2
3
|
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/
總結
到此這篇關于通過windows visual studio遠程調試wsl2中的.net core linux應用程序的問題的文章就介紹到這了,更多相關windows visual studio遠程調試wsl2內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/yyfh/p/13284004.html