.NET Core 2.1升级至6.0后IIS无法运行,apnetcorev2.dll加载失败
.NET Core 2.1升级到.NET 6.0后IIS 10.0无法运行,提示apnetcorev2.dll加载失败
将ASP.NET Core项目从.NET Core 2.1升级到.NET 6.0后,应用无法在IIS 10.0中启动,触发应用池直接退出,事件查看器中记录如下错误日志:
Log Name: Application Source: Microsoft-Windows-IIS-W3SVC-WP Date: 1/18/2023 10:37:14 AM Event ID: 2280 Task Category: None Level: Error Keywords: Classic User: N/A Computer: MACHINENAME.dev.oati.local Description: The Module DLL C:\Program Files\IIS\Asp.Net Core Module\V2\apnetcorev2.dll failed to load. The data is the error. Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Microsoft-Windows-IIS-W3SVC-WP" Guid="{670080D9-742A-4187-8D16-41143D1290BD}" EventSourceName="W3SVC-WP" /> <EventID Qualifiers="49152">2280</EventID> <Version>0</Version> <Level>2</Level> <Task>0</Task> <Opcode>0</Opcode> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2023-01-18T16:37:14.436510400Z" /> <EventRecordID>368815</EventRecordID> <Correlation /> <Execution ProcessID="0" ThreadID="0" /> <Channel>Application</Channel> <Computer>MACHINENAME.dev.oati.local</Computer> <Security /> </System> <EventData> <Data Name="ModuleDll">C:\Program Files\IIS\Asp.Net Core Module\V2\apnetcorev2.dll</Data> <Binary>7E000000</Binary> </EventData> </Event>
已完成的前置操作:
- 安装对应版本的Windows Hosting Bundle

- 安装对应版本的Microsoft Visual C++ Redistributable

- 通过Jexus Manager查看,显示ASP.NET Core Module Version 2未正确安装

排查与解决步骤
1. 核实模块文件完整性与拼写
注意日志中提到的apnetcorev2.dll存在拼写错误,正确文件名应为aspnetcorev2.dll。前往C:\Program Files\IIS\Asp.Net Core Module\V2路径:
- 确认
aspnetcorev2.dll文件存在,若缺失或大小异常,直接重新安装Windows Hosting Bundle - 检查文件数字签名有效性(右键→属性→数字签名),无效则说明文件损坏
2. 重新注册ASP.NET Core Module V2
以管理员身份打开命令提示符,执行以下命令:
"%ProgramFiles%\IIS\Asp.Net Core Module\V2\aspnetcorev2.exe" -install
完成后重启IIS:
iisreset
3. 修正应用池配置
- 确保应用池的**.NET CLR版本**设置为
无托管代码(.NET 6无需IIS托管CLR运行时) - 检查应用池身份对网站根目录的读写执行权限,必要时切换至
本地系统账户测试
4. 修复Windows Hosting Bundle安装
- 卸载已安装的Hosting Bundle,下载.NET 6对应的最新版本安装包
- 以管理员身份运行安装程序,选择修复选项,完成后重启IIS
5. 检查模块依赖项
安装Visual Studio工具集或Windows SDK后,执行命令查看dll依赖:
dumpbin /dependents "C:\Program Files\IIS\Asp.Net Core Module\V2\aspnetcorev2.dll"
确认所有依赖的系统dll均存在且版本匹配,缺失的话通过Windows更新或手动安装补全
内容的提问来源于stack exchange,提问作者jceddy
相关产品推荐
相关产品推荐

