.NET 專案
.NET 專案用於部署以 .NET 執行環境建置的應用程式,例如 ASP.NET Core Web/API、Blazor Server、gRPC 與 Worker Service 應用程式。 .NET 被視為一等公民的專案類型,因此面板會將你的應用程式作為 systemd 服務來管理,並可選擇一步為其建立反向代理網站。
先決條件
- 安裝 .NET 執行環境:應用程式 > 執行環境 > .NET
- 你的 .NET 專案的發布產物或原始碼
TIP
你可以安裝多個 .NET 版本。 建立專案時你需要選擇使用哪個已安裝的版本來執行它,因此不同專案可以並行執行在不同的 .NET 版本上。
建立 .NET 專案
- 進入 專案 頁面並開啟 .NET 分頁
- 點選 建立專案
- 填寫設定:
- 專案名稱:例如
myapp。 它會用作systemd服務識別碼,因此只能包含字母、數字、底線與連字號。 - 專案目錄:留空則預設為
/opt/ace/projects/<專案名稱>,或點選資料夾按鈕選擇目錄。 - .NET 版本:選擇一個已安裝的 .NET 版本。 清單中會顯示諸如
.NET 8.0.100這樣的項目;只有實際已安裝的版本才會出現在這裡。 - 框架:選擇一個框架範本(參見下表)。 選擇範本會自動填入 啟動指令。
- 執行使用者:預設為
www(你也可以選擇root/nobody,或輸入自訂使用者)。 如果沒有特殊需求,使用www即可。 - 啟動指令:根據所選版本與框架自動填入,且完全可編輯。
- 專案名稱:例如
- 可選擇啟用 反向代理 並填寫 網域 與 專案連接埠,以自動建立一個反向代理網站(監聽 80 連接埠,代理至
http://127.0.0.1:<專案連接埠>)供外部存取。 - 點選 建立。
框架範本
當你選擇一個 .NET 版本與一個框架後,啟動指令會以 dotnet<版本> <範本指令> 的形式產生。 例如,使用 .NET 8.0.100 與 ASP.NET Core Web 範本,指令會變成 dotnet8.0.100 run。
| 框架 | 產生的指令部分 |
|---|---|
| 自訂 | (為空 — 自行輸入指令) |
| ASP.NET Core Web | run |
| ASP.NET Core API | run |
| Blazor Server | run |
| gRPC Service | run |
| Worker Service | run |
TIP
除 自訂 外的所有範本都使用 dotnet run,便於快速上手。 對於正式環境,建議先發布你的專案(dotnet publish)並直接執行產生的 DLL,例如 dotnet8.0.100 /opt/ace/projects/myapp/myapp.dll。 只需相應地編輯 啟動指令 欄位即可。 當你想從頭輸入指令時,選擇 自訂。
啟動指令範例
dotnet<版本> 中的版本號與你選擇的已安裝 .NET 版本一致(例如 dotnet8.0.100)。
# 從原始碼執行(所有範本的預設行為)
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 配額)、安全強化選項(例如 NoNewPrivileges、ProtectHome、ProtectSystem)以及單元相依性。 變更會寫回到服務單元檔案。
設定預設 CLI 版本
如果你需要在終端機中直接使用 dotnet 指令,請進入 應用程式 > 執行環境 > .NET,開啟已安裝的版本,然後點選 設為 CLI 預設版本。 這會將該版本的 dotnet 二進位檔案連結到系統路徑中,使命令列中的 dotnet 解析到它。
注意事項
- 建立專案前必須先安裝 .NET 執行環境;否則將沒有可供選擇的版本。
- 應用程式日誌會寫入系統日誌,可透過專案清單上的 日誌 按鈕檢視。
- 對於 Web 應用程式,請確保你的應用程式監聽你為反向代理設定的連接埠(並繫結到
0.0.0.0或127.0.0.1,而不是僅localhost),以便代理能夠存取它。 - 在正式環境中,建議發布你的專案並執行 DLL,而不是使用
dotnet run,並使用環境變數或設定檔來管理設定,而不是硬編碼它們。
