通過Windows Visual Studio遠(yuǎn)程調(diào)試WSL2中的.NET Core Linux應(yīng)用程序的方法
最近兩天在Linux中調(diào)試.NET Core應(yīng)用程序,同時(shí)我發(fā)現(xiàn)在Linux中調(diào)試.NET Core應(yīng)用程序并不容易。一直習(xí)慣在Visual Studio中進(jìn)行編碼和調(diào)試?,F(xiàn)在我想的是可以簡(jiǎn)單快速的測(cè)試.NET Core應(yīng)用在Linux。所以通過本篇文章我們能了解到如何在Windows中使用Visual Studio進(jìn)行遠(yuǎn)程調(diào)試我們部署在Linux中的應(yīng)用程序,從而我們可以去發(fā)現(xiàn)或者說去調(diào)試在中會(huì)產(chǎn)生的一些問題。
Windows中的Linux:Hello WSL
子系統(tǒng)從這里我不做過多的介紹了,大家有興趣的話可以從 https://docs.microsoft.com/en-us/windows/wsl/about 中了解一下。
第一步從windows開啟wsl

我們可以搜到他并打開

打開后我們可以看到如下內(nèi)容

因?yàn)橐粫?huì)我需要對(duì)他進(jìn)行調(diào)試所以我這邊選擇的是DEBUG

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

現(xiàn)在我們已經(jīng)將我們的應(yīng)用程序發(fā)布到了linux中如下所示

如何附加到正在運(yùn)行的Linux應(yīng)用程序
正如上面所述,我想要做的是在Visual Studio中調(diào)試Linux應(yīng)用程序,那么下面我們來看一下附加

SSH連接類型將與具有以下通信架構(gòu)的WSL一起使用:

我們需要安裝vsdbg調(diào)試器,然后通過SSH通到將命令發(fā)送到Linux調(diào)試器。
默認(rèn)情況下,SSH服務(wù)器與WSL一起安裝。但是,我無法使整個(gè)管道都可以使用,因此必須卸載并重新安裝它:
sudo apt-get remove openssh-server sudo apt-get install openssh-server
更改SSH配置,以允許 Visual Studio所需的用戶名/密碼類型的安全性,如果不知道如何有效地使用vi來簡(jiǎn)單地編輯文件,請(qǐng)安裝nano
sudo apt-get install nano
在/etc/ssh/sshd_config中,更改PasswordAuthentication設(shè)置
sudo nano /etc/ssh/sshd_config PasswordAuthentication yes
重啟SSH服務(wù)器
sudo service ssh start
安裝解壓縮才能獲取vsdbg
sudo apt-get install unzip curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
現(xiàn)在我們可以選擇SSH作為連接類型,同時(shí)需要點(diǎn)擊“刷新”按鈕將這些信息填充,如下所示:

單擊“刷新”按鈕后,底部的列表應(yīng)包含在WSL中運(yùn)行的Linux進(jìn)程。

選擇.NET Core應(yīng)用程序,然后單擊附加選擇托管調(diào)試器:

當(dāng)我們?cè)诖a中設(shè)置斷點(diǎn)之后,并且觸發(fā)我們?cè)O(shè)置的斷點(diǎn)就會(huì)達(dá)到如下效果:

通過上面內(nèi)容來說我們以達(dá)到了我們預(yù)期的想法,我們可以通過Visual Studio借助WSL進(jìn)行調(diào)試Linux應(yīng)用程序。當(dāng)然對(duì)于這一塊我也在尋找更便捷的方式,當(dāng)然我還發(fā)現(xiàn)一個(gè)
.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/
總結(jié)
到此這篇關(guān)于通過Windows Visual Studio遠(yuǎn)程調(diào)試WSL2中的.NET Core Linux應(yīng)用程序的問題的文章就介紹到這了,更多相關(guān)Windows Visual Studio遠(yuǎn)程調(diào)試WSL2內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
asp.net 長(zhǎng)文章通過設(shè)定的行數(shù)分頁(yè)
長(zhǎng)文章通過設(shè)定的行數(shù)來實(shí)現(xiàn)分頁(yè)的代碼。2009-12-12
淺談.NET反射機(jī)制的性能優(yōu)化 附實(shí)例下載
在進(jìn)入解釋型模版引擎的探討之前,我決定先分享一下這篇博客。因?yàn)樵诮忉屝鸵胬飳?huì)引入反射的概念來實(shí)現(xiàn)更多、更復(fù)雜的功能2012-04-04
ASP.NET?Core中使用Redis實(shí)現(xiàn)緩存
本文詳細(xì)講解了ASP.NET?Core中使用Redis實(shí)現(xiàn)緩存的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
.NET6中哈希算法的簡(jiǎn)化用法的實(shí)現(xiàn)
本文主要介紹了.NET 6中哈希算法的簡(jiǎn)化用法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
ASP.NET Core自動(dòng)生成小寫破折號(hào)路由的實(shí)現(xiàn)方法
這篇文章主要介紹了ASP.NET Core自動(dòng)生成小寫破折號(hào)路由的實(shí)現(xiàn)方法,幫助大家更好的理解和學(xué)習(xí)使用ASP.NET Core,感興趣的朋友可以了解下2021-04-04
asp.net 在客戶端顯示服務(wù)器端任務(wù)處理進(jìn)度條的探討
由于 HTTP 協(xié)議本身的無狀態(tài)性,B/S結(jié)構(gòu)的程序無法像C/S程序那樣,實(shí)時(shí)顯示程序處理的進(jìn)度。搜索一下網(wǎng)上,一般都是采用靜態(tài)變量保存程序執(zhí)行進(jìn)度的方法實(shí)現(xiàn),但是,這種方法是完全錯(cuò)誤的,在并發(fā)的情況下,多個(gè)用戶訪問一個(gè)程序,會(huì)造成混亂。2009-09-09
在ASP.NET中實(shí)現(xiàn)多文件上傳的方法
在ASP.NET中實(shí)現(xiàn)多文件上傳的方法...2007-03-03
Asp.net Core與類庫(kù)讀取配置文件信息的方法
這篇文章主要給大家介紹了關(guān)于Asp.net Core與類庫(kù)讀取配置文件信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12
詳細(xì)介紹.NET中的動(dòng)態(tài)編譯技術(shù)
這篇文章詳細(xì)介紹了.NET中的動(dòng)態(tài)編譯技術(shù),有需要的朋友可以參考一下2013-11-11

