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

部署在IIS的.NET 6应用报ANCM进程内处理程序加载失败求助

.NET 6 IIS部署报错:HTTP Error 500.0 - ANCM进程内处理程序加载失败

错误信息

HTTP Error 500.0 - ANCM In-Process Handler Load Failure

常见触发原因

  • 未找到指定版本的Microsoft.NetCore.App或Microsoft.AspNetCore.App
  • 应用未引用进程内请求处理程序Microsoft.AspNetCore.Server.IIS
  • ANCM无法定位dotnet可执行文件

基础排查步骤

  • 查看系统事件日志中的详细错误信息
  • 启用应用进程的stdout消息日志记录
  • 将调试器附加到应用进程进行实时检查

用户已安装对应版本的.NET SDK和Runtime(见下图),但报错仍未解决:
已安装的.NET SDK与Runtime列表

针对性排查与修复方案

  1. 确认部署模式与Runtime匹配

    • 检查项目文件(.csproj)中的托管模式配置,确保设置为进程内:
      <PropertyGroup>
        <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
      </PropertyGroup>
      
    • 发布应用时选择的Runtime架构(x86/x64)需与服务器安装的版本完全一致。
  2. 验证Microsoft.AspNetCore.Server.IIS依赖

    • 检查项目NuGet依赖中是否包含Microsoft.AspNetCore.Server.IIS,若缺失则执行安装:
      Install-Package Microsoft.AspNetCore.Server.IIS
      
    • 发布时确保该包被包含在输出目录内。
  3. 修正IIS应用程序池配置

    • 打开IIS管理器,找到目标站点对应的应用程序池,将“.NET CLR版本”设置为无托管代码(.NET Core应用无需依赖IIS托管CLR)。
  4. 检查ASP.NET Core模块(ANCM)安装

    • 确认服务器已安装对应.NET 6版本的Windows Hosting Bundle(包含ANCM组件),可通过“程序和功能”列表查看。若未安装,重新下载安装对应版本的Hosting Bundle。
  5. 启用详细日志定位根因

    • 修改应用根目录下的web.config,启用stdout日志:
      <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
      
    • 确保logs目录存在且应用程序池拥有写入权限,通过生成的日志文件获取具体错误细节。

内容的提问来源于stack exchange,提问作者Rakesh Dhamejani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:13:14