.NET Core 的遠端偵錯工具SSH Linux篇
上一篇文章我們介紹了在Windows環境下,透過遠端工具在Visual Studio中的遠端偵錯(可參考文章.NET Core 的遠端偵錯工具 Windows篇),但本偏要介紹對於跨平台的開發人員,在不同的作業系統下,該如何進行遠端偵錯呢?今天範例我們要示範,如何透過 SSH 附加至在本機或遠端 Linux 部署上執行的 .net Core 處理序,進行遠端偵錯,跟著我們的步驟,開始吧!。
建立測試專案
Step 1. 首先我們建立一隻簡單的Window Serivce,範例使用的是 .net Core 3.1
。
Step 2. 修改 Program.cs
檔案,以下示範簡單代碼。
static void Main(string[] args)
{
Console.WriteLine("Start Service RunningLinuxConsole");
while (true)
{
Console.WriteLine("Hello!");
}
}
Step 3. 建立發布設定檔。
Step 4. 將發布完成的安裝包,放到Linux環境 (※請注意這邊程式所放置的路徑,跟後續設定檔的指定路徑有關)。
建立應用程式的服務檔
Step 1. 發佈到Linux環境下的服務測試沒問題之後,接下來我們來建立管理服務設定檔,首先,將目錄切到資料夾 /etc/systemd/system
,輸入指令。
sudo vi kestrel-dotnet.service
Step 2. 直接參考官方網站提供的程式範例,將參數調整為您的設定,調整完成後將內容貼到編輯器中。
[Unit]
Description=Example .NET Windows Service running on Centos
[Service]
WorkingDirectory=/home/pi/Desktop/dotnet-project/RunningLinuxConsole
ExecStart=/usr/local/bin/dotnet /home/pi/Desktop/dotnet-project/RunningLinuxConsole/RunningLinuxConsole.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=pi
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
完成後 按
esc 鍵
推出編輯模式,輸入命令:wq!
儲存並退出。
Step 3. 完成操作後,即可得到一個創建好的服務設定檔 kestrel-dotnet.service
。
Step 4. 將建立好的服務檔案註冊到系統中。
sudo systemctl enable kestrel-dotnet.service
Step 5. 啟動服務。
sudo systemctl start kestrel-dotnet.service
Step 6. 檢視監控服務執行記錄。
sudo journalctl -fu kestrel-helloapp.service
Step 7. 這邊可以確認我們的服務正常啟動並運作。
SSH 遠端偵錯
Step 1. 於Visual Studio工具列找到 偵錯 > 附加至處理序 (或是透過快捷鍵 Ctrl + Shift + P
),進行偵錯工具的處理序設定。
Step 2. 連線類型使用 SSH
,連線目標請設定您的Linux 帳號@IP
,我們會在 【可用的處理序】 對話方塊中顯示 SSH 傳輸上,看到來自遠端 Linux 電腦的處理序清單。
Step 3. 在出現的對話方塊中,選取您要進行偵錯工具的程式碼類型。 選擇 受控 ( .Net Core For Unix)。
Step 4. 使用 Visual Studio 偵錯工具功能來對應用程式進行偵錯。在執行的程式碼中看到 Visual Studio 偵錯工具在中斷點上停止。
藉由【附加至處理序】,使用 SSH 在 Linux 上進行 .NET Core 的偵錯工具,讓我們實現跨平臺測試並且直接在 Visual Studio 中除錯,這對於跨平台開發人員來說真是一大福音!
- 參考文章
tags: Visual Studio 2019
留言板
歷史留言