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

ASP.NET项目用MySqlConnector时遇System.Diagnostics.DiagnosticSource加载异常求助

解决方案:DiagnosticSource版本不匹配问题排查与修复

1. 确认项目引用的DiagnosticSource版本

  • 右键项目 → 管理NuGet程序包,查看System.Diagnostics.DiagnosticSource的已安装版本,确认是否为7.0.0.0
  • 若版本不符,直接更新到7.0.0.0,更新后检查NuGet自动生成的web.config绑定重定向是否完整

2. 完善绑定重定向与本地复制配置

原web.config的绑定重定向缺少外层节点,补充完整并添加强制复制配置:

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
      <codeBase version="7.0.0.0" href="file:///System.Diagnostics.DiagnosticSource.dll" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

同时在项目的.csproj文件中添加以下配置,确保DLL被复制到输出目录:

<ItemGroup>
  <Reference Include="System.Diagnostics.DiagnosticSource, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51">
    <Private>True</Private>
  </Reference>
</ItemGroup>

3. 排查全局程序集缓存(GAC)冲突

  • 以管理员身份打开命令提示符,执行gacutil /l System.Diagnostics.DiagnosticSource,查看GAC中是否存在该程序集的其他版本
  • 若存在冲突版本,执行gacutil /u System.Diagnostics.DiagnosticSource, Version=X.X.X.X(替换X为冲突版本号)移除该版本
  • 操作前请备份生产服务器的GAC内容

4. 验证MySqlConnector的依赖兼容性

  • 查看MySqlConnector的NuGet依赖说明,确认其对DiagnosticSource的版本要求
  • 若7.0.0.0版本兼容性存在问题,可尝试将DiagnosticSource降级到6.0.0.0,并同步修改绑定重定向的newVersion为6.0.0.0

5. 清理缓存并重新发布

  • 右键项目 → 清理,删除项目目录下的bin和obj文件夹
  • 重新生成解决方案后,再发布到服务器

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 09:34:50