跳轉到內容

.NET 專案

.NET 專案用於部署以 .NET 執行環境建置的應用程式,例如 ASP.NET Core Web/API、Blazor Server、gRPC 與 Worker Service 應用程式。 .NET 被視為一等公民的專案類型,因此面板會將你的應用程式作為 systemd 服務來管理,並可選擇一步為其建立反向代理網站。

先決條件

  1. 安裝 .NET 執行環境:應用程式 > 執行環境 > .NET
  2. 你的 .NET 專案的發布產物或原始碼

TIP

你可以安裝多個 .NET 版本。 建立專案時你需要選擇使用哪個已安裝的版本來執行它,因此不同專案可以並行執行在不同的 .NET 版本上。

建立 .NET 專案

  1. 進入 專案 頁面並開啟 .NET 分頁
  2. 點選 建立專案
  3. 填寫設定:
    • 專案名稱:例如 myapp。 它會用作 systemd 服務識別碼,因此只能包含字母、數字、底線與連字號。
    • 專案目錄:留空則預設為 /opt/ace/projects/<專案名稱>,或點選資料夾按鈕選擇目錄。
    • .NET 版本:選擇一個已安裝的 .NET 版本。 清單中會顯示諸如 .NET 8.0.100 這樣的項目;只有實際已安裝的版本才會出現在這裡。
    • 框架:選擇一個框架範本(參見下表)。 選擇範本會自動填入 啟動指令
    • 執行使用者:預設為 www(你也可以選擇 root / nobody,或輸入自訂使用者)。 如果沒有特殊需求,使用 www 即可。
    • 啟動指令:根據所選版本與框架自動填入,且完全可編輯。
  4. 可選擇啟用 反向代理 並填寫 網域專案連接埠,以自動建立一個反向代理網站(監聽 80 連接埠,代理至 http://127.0.0.1:<專案連接埠>)供外部存取。
  5. 點選 建立

框架範本

當你選擇一個 .NET 版本與一個框架後,啟動指令會以 dotnet<版本> <範本指令> 的形式產生。 例如,使用 .NET 8.0.100 與 ASP.NET Core Web 範本,指令會變成 dotnet8.0.100 run

框架產生的指令部分
自訂(為空 — 自行輸入指令)
ASP.NET Core Webrun
ASP.NET Core APIrun
Blazor Serverrun
gRPC Servicerun
Worker Servicerun

TIP

自訂 外的所有範本都使用 dotnet run,便於快速上手。 對於正式環境,建議先發布你的專案(dotnet publish)並直接執行產生的 DLL,例如 dotnet8.0.100 /opt/ace/projects/myapp/myapp.dll。 只需相應地編輯 啟動指令 欄位即可。 當你想從頭輸入指令時,選擇 自訂

啟動指令範例

dotnet<版本> 中的版本號與你選擇的已安裝 .NET 版本一致(例如 dotnet8.0.100)。

bash
# 從原始碼執行(所有範本的預設行為)
dotnet8.0.100 run

# 執行已發布的應用程式(正式環境建議)
dotnet8.0.100 myapp.dll

# 執行時內聯指定 URL / 環境
dotnet8.0.100 myapp.dll --urls "http://0.0.0.0:5000"

# 設定環境變數
ASPNETCORE_ENVIRONMENT=Production dotnet8.0.100 myapp.dll

管理專案

建立後,該專案會出現在 .NET 分頁的清單中。 對於每個專案,你可以:

  • 啟動 / 停止 服務
  • 重新啟動重新載入(僅在專案執行時顯示)
  • 檢視即時 日誌
  • 編輯 專案(見下文)
  • 刪除 專案(帶確認倒數計時)
  • 切換 開機自動啟動 以啟用或停用服務開機自動啟動

你也可以選取多個專案並使用批次 刪除 按鈕。

編輯

編輯 對話方塊會顯示底層的 systemd 服務設定,包括工作目錄、啟動指令、執行使用者、重新啟動原則、環境變數、資源限制(記憶體 / CPU 配額)、安全強化選項(例如 NoNewPrivilegesProtectHomeProtectSystem)以及單元相依性。 變更會寫回到服務單元檔案。

設定預設 CLI 版本

如果你需要在終端機中直接使用 dotnet 指令,請進入 應用程式 > 執行環境 > .NET,開啟已安裝的版本,然後點選 設為 CLI 預設版本。 這會將該版本的 dotnet 二進位檔案連結到系統路徑中,使命令列中的 dotnet 解析到它。

注意事項

  1. 建立專案前必須先安裝 .NET 執行環境;否則將沒有可供選擇的版本。
  2. 應用程式日誌會寫入系統日誌,可透過專案清單上的 日誌 按鈕檢視。
  3. 對於 Web 應用程式,請確保你的應用程式監聽你為反向代理設定的連接埠(並繫結到 0.0.0.0127.0.0.1,而不是僅 localhost),以便代理能夠存取它。
  4. 在正式環境中,建議發布你的專案並執行 DLL,而不是使用 dotnet run,並使用環境變數或設定檔來管理設定,而不是硬編碼它們。