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

本地IIS部署.NET 4.7网站时aspnetcore.dll加载失败求助

部署.NET 4.7网站时IIS加载aspnetcore.dll失败的问题排查思路

问题描述

在本地IIS部署运行基于.NET 4.7的旧网站时,触发错误:

模块DLL C:\WINDOWS\system32\inetsrv\aspnetcore.dll加载失败,错误数据已记录

核心疑问:.NET 4.7框架的网站为何会尝试加载ASP.NET Core的aspnetcore.dll?

已执行的无效操作:安装ASP.NET Core运行时、重启IIS、重启电脑,问题仍存在,且错误触发后网站对应的应用池会自动关闭。

事件查看器错误详情截图:
事件查看器错误详情

解决思路

  • 检查网站的IIS模块配置
    登录IIS管理器,定位到目标网站,查看「模块」列表,若存在AspNetCoreModuleV2或其他ASP.NET Core相关模块,直接移除;同时检查站点根目录的web.config,查看<system.webServer><modules>节点下是否有ASP.NET Core模块的注册配置,如有则删除该配置段。

  • 确认应用池的.NET CLR版本设置
    打开目标网站对应的应用池,检查「.NET CLR版本」是否设置为v4.0.30319(对应.NET 4.7),而非「无托管代码」(ASP.NET Core应用的默认设置)。错误的版本设置会导致IIS误加载ASP.NET Core模块。

  • 排查全局IIS模块冲突
    打开服务器级别的配置文件%windir%\system32\inetsrv\config\applicationHost.config,检查<globalModules>和<modules>节点,若发现AspNetCoreModule相关的全局注册条目,可尝试将其移除,或修改配置为仅针对特定站点加载该模块。

  • 修复ASP.NET Core托管捆绑包
    即使是.NET Framework网站,若IIS全局注册了ASP.NET Core模块,也需要确保托管捆绑包安装完整。重新下载对应版本的ASP.NET Core托管捆绑包进行修复安装,之后再次重启IIS。

  • 检查应用池身份权限
    验证应用池的运行身份是否拥有C:\WINDOWS\system32\inetsrv目录的读取权限。若权限不足,会导致dll加载失败。可临时将应用池身份改为LocalSystem进行测试,确认问题后再给原有身份添加该目录的读取权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:20