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.sh15。
日志管理与问题排查
查看实时日志
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 命令