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

.NET 8项目部署Windows 2022服务器IIS启动报错HTTP Error 500.37

解决HTTP Error 500.37 - ASP.NET Core应用程序启动超时问题

1. 确认服务器已安装匹配的.NET运行时

  • 必须安装ASP.NET Core Runtime 8.x(而非仅SDK),这是托管.NET 8应用的必要组件
  • 打开命令提示符,执行dotnet --list-runtimes查看已安装运行时,确保存在Microsoft.AspNetCore.App 8.x条目

2. 延长IIS应用池启动超时

  • 打开IIS管理器,找到目标应用池,右键选择「高级设置」
  • 在「进程模型」板块,将启动时间限制从默认90秒调高(建议设为300秒)
  • 同步检查「闲置超时」设置,避免应用被过早回收导致重复启动

3. 排查应用启动异常细节

  • 启用详细日志:修改项目appsettings.json,将日志级别设为Debug
    {
      "Logging": {
        "LogLevel": {
          "Default": "Debug",
          "Microsoft.AspNetCore": "Debug"
        }
      }
    }
    
  • 查看Windows事件查看器:进入「Windows日志 > 应用程序」,筛选来源为ASP.NET Core 8.0的事件,获取启动失败的具体报错
  • 本地直接运行应用:进入部署目录,执行dotnet 你的应用程序.dll,观察控制台输出的错误信息,快速定位代码或配置问题

4. 调整IIS应用池基础配置

  • 确保应用池「托管管道模式」设置为集成,.NET Core应用不支持经典模式
  • 检查应用池「身份」权限:确保该账号能访问项目文件、数据库及其他依赖资源
  • 验证外部服务连通性:如果应用依赖数据库、Redis等服务,确认服务器网络能正常连接,高延迟也会触发启动超时

5. 检查ASP.NET Core模块配置

  • 确认服务器已安装ASP.NET Core托管捆绑包,这是IIS托管.NET Core应用的核心组件
  • 验证站点web.config的aspNetCore节点配置:
    <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    
  • 开启stdout日志:将stdoutLogEnabled设为true,部署后查看logs目录下的日志文件,获取启动过程的完整输出

内容的提问来源于stack exchange,提问作者Post Impatica

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:00:03