在群晖NAS发布.NET Core Web API:如何设置wwwroot为工作目录?
解决群晖.NET 6 runtime套件工作目录修改问题
方法一:启动命令直接指定工作目录
不用修改系统默认路径,启动应用时直接通过参数指定目标目录:
- 先确认你发布的应用wwwroot路径,比如
/volume1/web/你的站点名/wwwroot - SSH登录群晖,执行启动命令时添加
--working-dir参数:dotnet /volume1/web/你的站点名/你的应用.dll --working-dir /volume1/web/你的站点名/wwwroot - 若要设置开机自启,把这条命令写入自定义启动脚本,替换套件默认的启动指令即可。
方法二:修改套件启动配置(谨慎操作)
如果需要固定修改套件默认工作目录,可调整启动脚本:
- SSH登录群晖,定位到.NET 6 runtime套件的启动脚本,一般在
/var/packages/dotnet6/target/路径下(比如start.sh) - 编辑脚本,找到设置工作目录的行(类似
cd /usr/syno/synoman/webapi/),替换为你的wwwroot路径,比如cd /volume1/web/你的站点名/wwwroot - 保存后重启套件或群晖生效。
额外提示
- 确保wwwroot文件夹权限正确,给
http用户或套件对应用户分配读写权限,避免应用访问文件失败 - 也可以在ASP.NET Core代码里配置内容根目录,修改
Program.cs:
发布时带上该配置,启动后会自动使用指定目录。var builder = WebApplication.CreateBuilder(new WebApplicationOptions { ContentRootPath = "/volume1/web/你的站点名/wwwroot" });
内容的提问来源于stack exchange,提问作者jérémie Courbat
相关产品推荐
相关产品推荐

