Abp.Castle.Log4Net : Method 'get_IsTraceEnabled' does not have an implementation

本文详细记录了在使用ABP框架时遇到的System.TypeLoadException错误,并提供了有效的解决方案。错误源于Abp.Castle.Log4Net和Castle.Core版本不匹配,通过降级Castle.Core到4.3.1解决了问题。

异常内容

System.TypeLoadException
  HResult=0x80131522
  Message=Method 'get_IsTraceEnabled' in type 'Abp.Castle.Logging.Log4Net.Log4NetLogger' 
  from assembly 'Abp.Castle.Log4Net, Version=4.5.0.0, Culture=neutral, PublicKeyToken=null' 
  does not have an implementation.
  Source=Abp.Castle.Log4Net
  StackTrace:
   at Abp.Castle.Logging.Log4Net.Log4NetLoggerFactory.Create(String name)
   at Castle.Facilities.Logging.LoggingFacility.RegisterDefaultILogger(ILoggerFactory factory)
   at Castle.Facilities.Logging.LoggingFacility.Init()
   at Castle.MicroKernel.DefaultKernel.AddFacility(String key, IFacility facility)
   at Castle.Windsor.WindsorContainer.AddFacility[T](Action`1 onCreate)

解决思路

因为GitHub上有ABP的源码:aspnetboilerplate,准备看源码,这个方法不建议推荐,比较花时间,很可能费力不讨好。但是搞清楚之后肯定有助于加深对ABP的理解。为了最快解决问题,从想想bug怎么出现倒推解决办法。我是因为更新了解决方案的nuget包。这就好说了。解决办法:试着降级nuget包。

我是将 Abp.Castle.Log4Net 从4.3升级到了4.5 。一步到位,降级到4.3 ,信心满满的debug,异常依旧。我想或许会有人提Issue,没有我就自己提Issue。搜索Issue:https://github.com/aspnetboilerplate/aspnetboilerplate/search?q=get_IsTraceEnabled&type=Issues ,搜索结果显示已经有人提了 Issue。 Issue 4445:: System.TypeLoadException: Method 'get_IsTraceEnabled'
该Issue的解决方案是同时降级 Abp.Castle.Log4Net 和 Castle.Core
在这里插入图片描述
既然单单降级Abp.Castle.Log4Net不行,私以为问题在Castle.Core。尝试将Abp.Castle.Log4Net包依然升级到4.5,只降级Castle.Core到4.3.1 。速度debug,bug解决。看来问题是因为Abp.Castle.Log4Net对应的应该是Castle.Core 4.3.1。想要搞明白真正的问题得去看Castle的源码了。

一句话总结解决方案:将Castle.Core降级到4.3.1

转载于:https://www.cnblogs.com/AlienXu/p/10770003.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值