.NET Core Web API部署到Anolis8系统

rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
dnf install -y aspnetcore-runtime-8.0

文件传输到服务器‌
使用 scp 或 xftp 将 publish 目录上传至服务器(如 /opt/webapi)‌14。
‌服务器配置与运行‌:
‌配置工作目录权限‌
useradd www-data
sudo mkdir -p /opt/webapi
sudo chown -R www-data:www-data /opt/webapi

‌启动应用程序‌
进入发布目录:

cd /opt/webapi
运行项目(默认监听 5000/5001 端口):

dotnet YourWebApi.dll
若需后台运行,使用 nohup 或 systemd 托管‌12。

基本命令与操作‌
‌启动应用并挂载到后台‌
在项目发布目录下,执行以下命令(需替换实际路径和端口):

nohup dotnet /opt/webapi/YourWebApi.dll –urls “http://*:5000” > /dev/null 2>&1 &
nohup:确保进程在终端关闭后持续运行‌12。

/dev/null 2>&1:丢弃标准输出和错误日志(生产环境建议保留日志,可替换为文件路径,如 >nohup.out)‌12。
&:后台运行‌12。

‌验证进程状态‌

ps -ef | grep YourWebApi.dll
若进程存在,表示托管成功‌15。

进阶脚本管理‌
‌编写自动化部署脚本‌
创建 deploy.sh 文件,内容示例:

!/bin/bash

app_name=”YourWebApi.dll”
deploy_dir=”/opt/webapi”
port=5000

终止旧进程

启动新进程

pid=$(ps -ef | grep $app_name | grep -v grep | awk ‘{print $2}’)
if [ -n “$pid” ]; then
kill $pid
echo “已终止旧进程: $pid”
fi

cd $deploy_dir
nohup dotnet $app_name –urls=”http://*:$port” > nohup.out 2>&1 &
echo “应用已启动,日志输出至 $deploy_dir/nohup.out”


脚本功能:自动终止旧进程并重新部署‌12。
使用权限:chmod +x deploy.sh 后执行 ./deploy.sh‌15。

日志管理与问题排查‌
‌查看实时日志‌

tail -f /opt/webapi/nohup.out
实时监控日志输出,快速定位启动错误(如端口冲突、依赖缺失等)‌12。

‌常见错误处理‌

‌依赖未安装‌:确保服务器已安装 .NET Core 运行时(参考命令 sudo yum install dotnet-sdk-8.0 或 sudo apt-get install aspnetcore-runtime-8.0)‌34。
‌文件权限不足‌:

sudo chmod 755 /opt/webapi/YourWebApi.dll
sudo chown -R www-data:www-data /opt/webapi
确保执行用户对目录和文件有读写权限‌35。
‌四、停止与重启服务‌
‌终止进程‌
bash
Copy Code

查找进程 PID

ps -ef | grep YourWebApi.dll | grep -v grep | awk ‘{print $2}’

终止进程

kill
‌重启服务‌
直接执行部署脚本或手动运行 nohup 命令‌

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注