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

ASP.NET Core部署Ubuntu时找不到appsettings.Production.json问题

解决Ubuntu部署ASP.NET Core找不到appsettings.Production.json的问题

问题根源

服务启动时默认工作目录是根目录/,而你的配置文件实际在/home/ubuntu/Release/net8.0/下,代码里用相对路径加载文件,导致程序去根目录查找,自然找不到目标文件。

解决方案

方案1:修改systemd服务文件,指定工作目录

在服务文件的[Service]段添加WorkingDirectory配置,让程序在发布文件所在目录运行:

[Unit]
Description=ASP.NET Core Website
After=network.target

[Service]
ExecStart=/usr/bin/dotnet /home/ubuntu/Release/net8.0/API.dll
WorkingDirectory=/home/ubuntu/Release/net8.0/  # 新增工作目录配置
Restart=on-failure  # 修正原配置的语法错误,原Restart-on=failure写法无效
User=ubuntu
Type=simple
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

修改后重新加载服务配置并重启:

sudo systemctl daemon-reload
sudo systemctl restart your-service-name

方案2:修改代码,基于程序集目录加载配置文件

在Program.cs里改用程序集所在目录拼接配置文件路径,确保无论工作目录是什么,都能定位到正确文件:

using System.IO;

// ...

builder.Configuration.AddJsonFile(Path.Combine(AppContext.BaseDirectory, "appsettings.Production.json"), false);

修改后重新发布部署即可。

方案3:检查并修正文件权限

确认ubuntu用户对配置文件有读取权限,执行命令查看:

ls -l /home/ubuntu/Release/net8.0/appsettings.Production.json

如果权限不足,执行以下命令赋予读取权限:

sudo chmod o+r /home/ubuntu/Release/net8.0/appsettings.Production.json

内容的提问来源于stack exchange,提问作者iKingNinja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 21:42:05