.NET 7 (7.0.101) - 无法从程序集"动态代理生成程序集2"加载类型 'Castle.Proxies.XXXProxy'



这个错误是偶发的,总是在不同的地方。通常在应用程序启动时显示。

完全错误:

System.Reflection.ReflectionTypeLoadException: 'Unable to load one or more of the requested types.
Could not load type 'Castle.Proxies.ProductionDataProxy' from assembly 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
Could not load type 'Castle.Proxies.Invocations.ProductionData_set_ProductionDataType' from assembly 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.'

总是不同的类型,主要是在EFCore上下文中。有时在其他地方类型正在加载

at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at BaseDbContext..ctor(DbContextOptions options)
at XXX.DatioContext..ctor(DbContextOptions`1 options) in 
C:XXXDatioContext.cs:line 36

我的项目是。net 7项目,只有很少的托管服务和控制器。我不知道出了什么问题。这是。net 7的bug吗?

谢谢!

我解决了这个问题!

我用于实体框架配置的库试图搜索加载的程序集(从AppDomain)的某些接口。当它找到DynamicProxyGenAssembly2"并调用assembly.GetTypes(),则以上述异常结束。

这是零星的,因为AppDomain程序集只包含内存中的加载程序集,有时会出现"DynamicProxyGenAssembly2"加载,有时不加载

我希望这对那些和我有同样问题的人有帮助。

最新更新