跳转到内容

.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,并使用环境变量或配置文件来管理设置,而不是硬编码它们。