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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:05:48