ASP.NET Core Web API本地正常,部署Plesk服务器遇404错误求助
ASP.NET Core API部署Plesk后404问题排查方案
1. 纠正launchsettings.json的认知错误
launchsettings.json仅用于本地开发环境,部署到Plesk服务器后不会被读取,修改它的applicationUrl对生产环境完全无效,部署时无需上传该文件。
2. 确认是否上传了正确的发布文件
从你的服务器文件树来看,你上传的是完整项目源码(包含.csproj、launchsettings.json等开发文件),这是错误操作。正确流程:
- 本地执行
dotnet publish -c Release命令,生成发布包(默认路径为bin/Release/netX.X/publish,netX.X替换为你的项目目标框架版本) - 将
publish文件夹内的所有文件上传到Plesk网站的根目录,覆盖现有文件
3. 检查Plesk的ASP.NET Core核心配置
登录Plesk后台,找到对应网站的「ASP.NET Core设置」:
- 确认**.NET Core版本**与项目目标框架完全匹配(比如项目基于.NET 6,服务器也要选择.NET 6)
- 「应用程序池」设置为无托管代码(ASP.NET Core不依赖IIS托管运行时)
- 「启动命令」填写
dotnet NHLStatsAndSalaryAPI.dll(替换为你的API项目DLL文件名) - 勾选「启用应用程序」并保存设置
4. 验证路由与生产环境配置
- 生产环境默认禁用Swagger,若访问
https://apinhl.nhldynastypool.com/swagger出现404属于正常情况,直接测试实际API端点(比如https://apinhl.nhldynastypool.com/api/players) - 确认
Program.cs中已添加路由映射代码:app.MapControllers(); - 检查控制器是否标记了
[ApiController]属性,路由模板是否正确(例如[Route("api/[controller]")])
5. 查看服务器日志定位问题
在Plesk后台查看两类关键日志:
- 网站错误日志:排查是否存在域名绑定、目录权限等问题
- ASP.NET Core日志:检查是否有数据库连接失败、Kestrel启动异常、路由匹配错误等信息(即使切换了数据库,也要确认
appsettings.Production.json中的连接字符串是否正确,数据库用户是否具备访问权限)
6. 确认域名绑定与目录设置
- 子域名
apinhl.nhldynastypool.com需正确绑定到发布文件所在目录,而非项目源码目录 - 检查Plesk「网站与域名」→「主机设置」,确认文档根目录指向发布文件的存储位置
内容的提问来源于stack exchange,提问作者sauro1997
相关产品推荐
相关产品推荐

