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

Polly.Caching.Memory.MemoryCacheProvider抛出TypeLoadException排查

问题背景

当前项目引用的NuGet包配置如下:

<PackageReference Include="Polly" Version="7.2.2" />
<PackageReference Include="Polly.Caching.Memory" Version="3.0.2" />

以上包在独立测试项目中运行正常,集成到引入了大量其他NuGet包的现有应用程序时,抛出System.TypeLoadException异常,具体报错:

程序集Polly.Caching.Memory, Version=3.0.0.0, Culture=neutral, PublicKeyToken=c8a3ffc3f8f825cc中的类型Polly.Caching.Memory.MemoryCacheProvider所含的TryGet方法无实现。

已完成的排查动作:

  • 所有关联项目的Polly、Polly.Caching.Memory版本均已对齐
  • 输出bin目录下存在正确版本的对应程序集
  • 反汇编查看对应程序集,确认TryGet方法已实现
  • 暂未定位问题根因
进一步排查方向
  • 确认运行时实际加载的程序集版本
    启动程序触发异常前,打开Visual Studio的模块窗口(调试状态下依次选择「调试」→「窗口」→「模块」),筛选所有Polly相关的已加载程序集,核对每个dll的加载路径、版本号。不要默认bin目录下的dll就是运行时加载的文件:如果本机GAC(全局程序集缓存)中部署过旧版本的强签名Polly相关程序集,运行时会优先加载GAC中的版本,直接忽略本地bin目录下的正确版本。
  • 检查程序集绑定重定向配置
    打开项目运行时对应的配置文件(app.config/web.config/*.runtimeconfig.json),检查Polly相关的绑定重定向规则:
    • 针对.NET Framework项目,确认runtime节点下的assemblyBinding配置中,Polly、Polly.Caching.Memory的旧版本绑定规则已清理,重定向的目标版本和实际引用的7.2.2/3.0.2版本一致。Polly 7.x版本调整过缓存提供器的接口签名,如果绑定重定向错误导致3.0.2版本的MemoryCacheProvider和6.x版本的Polly核心库匹配,就会出现“方法无实现”的类型加载错误。
    • 针对.NET Core/.NET 5+项目,检查是否存在手动配置的程序集加载逻辑,强制加载了不兼容版本的Polly核心库。
  • 全链路排查Polly生态包的版本依赖
    打开项目编译生成的obj/project.assets.json文件,搜索所有Polly前缀的依赖项,核对所有间接依赖的Polly相关包(比如Polly.Caching.Abstractions、Polly.Extensions、第三方封装的Polly缓存/熔断组件)的版本要求,确认没有包拉取了不兼容的Polly核心版本或缓存抽象包版本。只要有一个组件依赖旧版本的缓存抽象接口,就会导致类型签名不匹配。
  • 排查同名类型冲突
    全局搜索现有项目代码、所有引用的第三方库,确认不存在自定义的Polly.Caching.Memory.MemoryCacheProvider类型、或者同名的缓存接口定义。如果有私有编译的同名类型被优先加载,会和官方包的类型产生冲突,导致方法匹配失败。
  • 清理全链路编译缓存后全量重建
    执行以下操作排除增量编译、缓存残留的影响:
    1. 删除解决方案下所有项目的bin、obj目录
    2. 执行命令dotnet nuget locals all --clear清空本地NuGet包缓存
    3. 重新执行NuGet包还原,全量重新编译解决方案
  • 排查部署环节的文件覆盖问题
    如果异常是在发布部署后出现,检查部署流程的文件覆盖规则:如果部署时设置为「保留现有文件」,目标环境中遗留的旧版本Polly相关dll不会被新版本覆盖,会直接导致类型加载错误。需要手动清空目标部署目录下的所有旧文件后再重新发布。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:36:38