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

VS2022及IIS中网站无法运行,System.Runtime程序集加载失败求助

解决System.Runtime版本不匹配(HRESULT:0x80131040)问题的步骤

1. 核对项目目标框架与本地.NET SDK

  • 右键项目→属性→应用,确认目标框架为.NET 6.x(错误提示需加载6.0.0.0版本)。
  • 打开命令提示符,执行dotnet --list-sdks,确认本地已安装.NET 6 SDK。若未安装,直接下载对应版本安装即可。

2. 重置NuGet依赖包

  • 在VS的包管理器控制台执行Update-Package -reinstall,强制重新安装所有依赖包,确保版本统一。
  • 打开项目的.csproj文件,检查所有<PackageReference>节点,确保System.Runtime的引用版本为6.0.0,示例:
    <PackageReference Include="System.Runtime" Version="6.0.0" />
    

3. 配置IIS运行环境

  • 确认服务器已安装.NET 6 Hosting Bundle(IIS运行.NET 6网站的必需组件),安装完成后重启IIS。
  • 打开IIS管理器,找到对应网站的应用程序池,设置**.NET CLR版本**为无托管代码,管道模式选择集成。

4. 针对Fusion日志定位的路径修复

  • 根据Fusion日志显示的加载失败路径,检查该路径下的System.Runtime.dll版本是否为6.0.0.0:
    • 若路径是全局程序集缓存(GAC),执行gacutil /l System.Runtime查看已注册版本,用gacutil /u System.Runtime, Version=xxx删除不匹配版本,再重新安装正确版本到GAC。
    • 若路径是项目bin/obj目录或IIS站点bin目录,直接删除整个bin和obj文件夹,重新生成项目,确保输出正确版本的程序集。

5. 添加绑定重定向(可选)

  • 在项目的web.config中添加绑定重定向规则,强制所有引用指向正确版本:
    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 18:52:53