You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 5 WebAPI部署Ubuntu服务器遇(code=exited, status=203/EXEC)错误求助

解决方案汇总

方案1:升级项目到.NET 6(推荐长期方案)

.NET 5已停止官方支持,Ubuntu 23.04不再提供该版本的安装源,升级到LTS版本的.NET 6是最稳定的选择:

  • 本地安装.NET 6 SDK,打开项目修改.csproj文件:将<TargetFramework>net5.0</TargetFramework>替换为<TargetFramework>net6.0</TargetFramework>
  • 更新NuGet依赖:将所有Microsoft.AspNetCore.*包升级到6.x版本,Swagger相关包(Swashbuckle.AspNetCore)同步更新至兼容.NET 6的版本
  • 重新发布项目:执行dotnet publish -c Release,将发布后的文件覆盖服务器/var/www/MinAPI目录下的旧文件
  • 验证服务器运行时:执行dotnet --list-runtimes确认已安装ASP.NET Core 6.0运行时
  • 重启服务:systemctl restart MinAPIservice.service,再用systemctl status MinAPIservice.service检查运行状态

方案2:兼容模式运行(临时快速方案)

若暂时不想升级项目代码,可利用.NET的向前兼容特性,让.NET 6运行时承载.NET 5项目:

  • 本地修改项目.csproj,在<PropertyGroup>节点中添加配置:
<RollForward>Major</RollForward>
  • 重新发布并上传项目文件到服务器
  • 确保服务器已安装ASP.NET Core 6.0运行时,直接执行dotnet /var/www/MinAPI/MinWebApi.dll测试运行,正常后重启systemd服务

方案3:修复systemd服务的基础错误

从状态日志的status=203/EXEC来看,存在路径或权限问题:

  • 修正文件路径:systemd配置中ExecStart指向的是MinWebApi.dll,但你测试时运行的是WebApi.dll,文件名不匹配,修改/etc/systemd/system/MinAPIservice.service中的路径为正确的文件名
  • 修复权限:执行chown -R www-data:www-data /var/www/MinAPI和chmod -R 755 /var/www/MinAPI,确保服务运行用户有权限访问项目文件
  • 重载systemd配置:systemctl daemon-reload后重启服务

503错误排查

服务启动正常后仍出现503时,需检查:

  • 反向代理配置:若用Nginx等代理,确保代理端口与WebAPI监听端口(默认5000/5001,或项目配置端口)一致
  • 查看服务日志:执行journalctl -u MinAPIservice.service -f实时查看日志,排查端口绑定失败、Swagger初始化错误等问题
  • 防火墙配置:执行ufw allow 5000/tcp(若直接访问API端口)或开放80/443端口(若通过代理访问)

内容的提问来源于stack exchange,提问作者Bashar Al-shaibani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:37:20