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

部署ASP.NET Core 5.0 Web API时遭遇404/500错误求助

问题:ASP.NET Core 5.0 Web API部署至IIS出现404/500错误

环境背景

  • 因客观限制必须使用ASP.NET Core 5.0,服务器已有同版本Web API正常运行
  • 本地通过IISExpress运行API(基于Visual Studio默认Web API项目创建,无认证、启用HTTPS、未启用OpenAPI)一切正常
  • 服务器部署路径为D:\Sites\Mailer,应用程序池设置:无托管代码、禁用32位

部署异常详情

尝试三种发布方式均出现问题:

  1. 自包含+win-x64发布
    • web.config配置<aspNetCore processPath=".\classic.api.pdfmaker.exe":应用池启动后日志为空,访问website.com/mailer/pdfmaker返回404;停止池后日志显示应用启动后关闭,事件查看器提示启动成功
    • 修改为processPath="dotnet" arguments=".\classic.api.pdfmaker.dll":返回500错误,提示找不到hostpolicy.dll,且runtimeconfig.json未指定框架
  2. 框架依赖+win-x64发布:不同web.config配置对应上述相同的404/500错误
  3. 框架依赖+可移植发布
    • web.config使用processPath="dotnet"+dll或直接指向exe:返回404
    • 使用processPath="dotnet"+exe:返回500错误,提示程序集扩展名冲突

相关配置信息

服务器dotnet --info结果

C:\Users\me>dotnet --info

Host (useful for support):
  Version: 5.0.5
  Commit:  2f740adc14

.NET SDKs installed:
  No SDKs were found.

.NET runtimes installed:
  Microsoft.AspNetCore.App 3.1.12 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 3.1.12 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

.runtimeconfig.json关键配置

"runtimeOptions": {
    "tfm": "net5.0",
    "framework": {
      "name": "Microsoft.AspNetCore.App",
      "version": "5.0.0"
},

代码结构

控制器、Program.cs、Startup.cs均为ASP.NET Core 5.0标准结构

排查思路建议

  • 检查应用程序池权限:确保池标识拥有D:\Sites\Mailer目录的读写权限,尤其是日志目录的权限
  • 修正runtimeconfig版本匹配:服务器安装的ASP.NET Core App版本为5.0.5,将配置中framework.version改为5.0.5或使用5.0.*通配符,避免版本不匹配
  • 核对web.config路径配置:自包含发布应直接指向exe文件,无需使用dotnet命令;框架依赖发布必须指向dll,可尝试使用dotnet绝对路径C:\Program Files\dotnet\dotnet.exe确保路径正确
  • 启用详细日志:在web.config中添加stdoutLogEnabled="true"和stdoutLogFile=".\logs\stdout",手动创建logs目录,查看应用启动的详细日志信息
  • 验证IIS站点映射:确认站点虚拟路径/mailer/pdfmaker正确指向D:\Sites\Mailer目录,未与服务器上其他应用产生路由冲突
  • 检查路由与端口配置:确认控制器路由注解(如[Route("api/[controller]")])与访问路径匹配;检查Program.cs中端口配置(IIS反向代理场景下无需手动指定端口)
  • 重新发布验证完整性:重新生成自包含发布包,确保所有依赖文件完整复制到服务器目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:50:13