Linux Plesk部署.NET Core Web API后无法运行(.NET Toolkit扩展)
解决Plesk Ubuntu环境下.NET 6 Web API部署后404错误的方案
1. 核对.NET运行时与站点配置
- 打开Plesk面板的「Extensions」>「.NET Toolkit」,确认已安装**.NET 6.0 linux-x64版本**的运行时。
- 进入站点的「Settings」>「.NET Settings」,将「ASP.NET Core version」指定为.NET 6.0,同时确保应用池的「.NET CLR version」选择「No Managed Code」(.NET Core为独立运行时,无需IIS托管CLR)。
2. 验证发布文件与权限
- 确认本地发布的linux-x64包完整,包含
web.config、appsettings.json及所有依赖DLL,上传至Plesk站点根目录后,执行以下命令修复权限:chown -R psacln:psacln /var/www/vhosts/yourdomain.com/httpdocs chmod -R 755 /var/www/vhosts/yourdomain.com/httpdocs - 检查
web.config的aspNetCore节点配置,确保processPath指向正确的API可执行文件,示例:<system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="./YourApiName.dll" stdoutLogEnabled="false" stdoutLogFile="./logs/stdout" hostingModel="inprocess" /> </system.webServer> - 若使用
outofprocess托管模型,需在appsettings.json中设置Urls为http://0.0.0.0:5000,并在Plesk站点设置中配置反向代理指向该端口。
3. 查看日志定位问题
- 修改
web.config将stdoutLogEnabled设为true,触发404请求后,查看./logs目录下的stdout日志,排查启动阶段的依赖缺失、配置错误等问题。 - 检查Plesk的「Logs」>「Apache/IIS日志」,确认请求是否到达正确路径,是否存在重定向规则导致的404。
4. 确认站点根目录配置
- 进入站点的「Hosting Settings」,核对「Document root」是否指向Web API发布文件所在的目录,若发布文件在
httpdocs/api,需将根目录设置为/httpdocs/api,避免请求找不到入口。
5. 校验API路由代码
- 本地测试发布后的linux-x64包,执行
dotnet YourApiName.dll启动,确认本地访问正常,排除代码路由配置问题(比如是否遗漏[Route]属性、路由模板是否正确)。
内容的提问来源于stack exchange,提问作者srikanth sabbineni
相关产品推荐
相关产品推荐

