异常内容

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的源码:,准备看源码,这个方法不建议推荐,比较花时间,很可能费力不讨好。但是搞清楚之后肯定有助于加深对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