.NET Core 的遠端偵錯工具SSH Linux篇

上一篇文章我們介紹了在Windows環境下,透過遠端工具在Visual Studio中的遠端偵錯(可參考文章.NET Core 的遠端偵錯工具 Windows篇),但本偏要介紹對於跨平台的開發人員,在不同的作業系統下,該如何進行遠端偵錯呢?今天範例我們要示範,如何透過 SSH 附加至在本機或遠端 Linux 部署上執行的 .net Core 處理序,進行遠端偵錯,跟著我們的步驟,開始吧!。


建立測試專案

Step 1. 首先我們建立一隻簡單的Window Serivce,範例使用的是 .net Core 3.1

image

Step 2. 修改 Program.cs檔案,以下示範簡單代碼。

    static void Main(string[] args)
    {
        Console.WriteLine("Start Service RunningLinuxConsole");
        while (true)
        {
            Console.WriteLine("Hello!");
        }
     }

Step 3. 建立發布設定檔。

image

Step 4. 將發布完成的安裝包,放到Linux環境 (※請注意這邊程式所放置的路徑,跟後續設定檔的指定路徑有關)。

image


建立應用程式的服務檔

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

image

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. 這邊可以確認我們的服務正常啟動並運作。

image


SSH 遠端偵錯

Step 1. 於Visual Studio工具列找到 偵錯 > 附加至處理序 (或是透過快捷鍵 Ctrl + Shift + P),進行偵錯工具的處理序設定。

image

Step 2. 連線類型使用 SSH ,連線目標請設定您的Linux 帳號@IP,我們會在 【可用的處理序】 對話方塊中顯示 SSH 傳輸上,看到來自遠端 Linux 電腦的處理序清單。

image

Step 3. 在出現的對話方塊中,選取您要進行偵錯工具的程式碼類型。 選擇 受控 ( .Net Core For Unix)。

image

Step 4. 使用 Visual Studio 偵錯工具功能來對應用程式進行偵錯。在執行的程式碼中看到 Visual Studio 偵錯工具在中斷點上停止。

image

藉由【附加至處理序】,使用 SSH 在 Linux 上進行 .NET Core 的偵錯工具,讓我們實現跨平臺測試並且直接在 Visual Studio 中除錯,這對於跨平台開發人員來說真是一大福音!


  • 參考文章

Microsoft-Visual Studio

Microsoft-Remote Testing (experimental preview)

tags: Visual Studio 2019

留言板
歷史留言

標籤