卸载.NET Core Hosting Bundle 2.2.8后服务器全部应用停止运行问题咨询
.NET Core 2.2 Hosting Bundle卸载后应用故障排查方案
1. 优先核查IIS ASP.NET Core模块(ANCM)配置
Hosting Bundle包含的ANCM是IIS转发请求到.NET Core应用的核心组件,卸载旧版本时极易误修改全局ANCM配置,这是此类故障最高发的原因:
- 打开IIS管理器,点击服务器根节点,打开「模块」功能,确认存在
AspNetCoreModuleV2条目,右键查看其可执行文件路径:- 正常路径应指向高版本Hosting Bundle的对应文件,例如
C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll - 如果路径指向已删除的2.2版本目录,或条目不存在,直接修复安装.NET 5的Hosting Bundle即可自动修复配置
- 正常路径应指向高版本Hosting Bundle的对应文件,例如
- 执行命令
%SystemRoot%\system32\inetsrv\appcmd.exe list config -section:system.webServer/aspNetCore查看全局ANCM配置,确认无绑定到2.2版本的硬编码规则 - 对比正常服务器的ANCM配置,排查是否存在站点级别的自定义ANCM注册规则
2. 验证运行时完整性与依赖规则
- 服务器本地执行
dotnet --info,确认输出列表中存在.NET Core 3.1、.NET 5的Runtime与ASP.NET Core Shared Framework条目 - 取任意一个故障应用的发布包,在服务器本地直接执行
dotnet 应用入口.dll,查看控制台输出:- 如果运行正常无报错,说明故障完全集中在IIS链路,无需排查应用依赖
- 如果提示找不到2.2版本运行时,说明应用引用的第三方NuGet包存在2.2版本依赖,可在应用根目录新增
runtimeconfig.json文件配置运行时滚动策略:
{ "runtimeOptions": { "rollForward": "LatestMajor" } }
- 检查
C:\Program Files\dotnet目录下所有3.1、5版本运行时目录的权限,确认IIS应用池运行身份拥有读取与执行权限
3. 排查卸载操作残留影响
- 打开系统事件查看器,定位「Windows日志-应用程序」,筛选来源为
.NET Runtime、IIS AspNetCore Module V2的错误日志,日志中会明确标注缺失的依赖版本、路径等关键信息 - 执行
dotnet-core-uninstall list查看卸载记录,确认操作时未误删3.1、5版本的共享组件 - 直接执行.NET 5 Hosting Bundle的安装程序,选择「修复」选项,该操作会自动覆盖注册ANCM、修复运行时文件关联,可解决90%以上的同类故障
内容的提问来源于stack exchange,提问作者Mårten Swärd
相关产品推荐
相关产品推荐

