.NET Core 5出现HTTP Error 500.0 - ANCM In-Process Handler Load Failure如何解决
故障定位步骤
- 第一步验证服务器环境:确认是否安装了与项目版本匹配的.NET Core 5 Hosting Bundle(托管捆绑包),ANCM(AspNetCore模块)的进程内处理程序仅在托管捆绑包中提供,仅安装SDK或桌面运行时都会缺失该组件。
- 第二步检查IIS应用池配置:确认站点对应的应用程序池.NET CLR版本设置为无托管代码,.NET Core应用不依赖IIS的.NET Framework托管运行时。
- 第三步核查发布配置:打开站点根目录的
web.config文件,确认aspNetCore节点的hostingModel属性是否配置为inprocess,拼写错误、配置缺失都会触发该报错。 - 第四步查看系统日志:打开Windows事件查看器,定位到「Windows日志->应用程序」,筛选来源为
IIS AspNetCore Module V2的错误记录,可获取具体的底层报错原因,比如运行时版本不兼容、程序集缺失、目录权限不足等。 - 第五步验证目录权限:确认应用程序池的运行身份对站点根目录拥有读取、执行权限。
故障解决方案
- 托管捆绑包缺失/版本不匹配:安装对应版本的.NET 5托管捆绑包,安装完成后执行
iisreset命令重启IIS生效。 - 应用池配置错误:打开IIS管理器,进入对应应用池的「基本设置」页面,将.NET CLR版本调整为「无托管代码」,保存后重启应用池。
- web.config配置错误:可通过Visual Studio重新发布项目自动生成正确配置,也可以手动修正
hostingModel属性;如果需要临时验证服务可用性,可临时将hostingModel修改为outofprocess切换为进程外托管模式,验证服务是否能正常启动。 - 目录权限不足:给站点根目录添加应用程序池对应的身份权限,如应用池名称为
WebSitePool,则添加用户IIS AppPool\WebSitePool,赋予读取、列出目录内容、读取和执行权限。
内容的提问来源于stack exchange,提问作者Luis Estrella
相关产品推荐
相关产品推荐

