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


    异常内容

    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

  • 相关阅读:
    文件操作:Directory,File,FielStream、StreamRead和StreamWriter的使用
    MVC中Excel导入
    T对象序列化后T对象中属性字段不见了?
    Sql游标
    Form表单提交
    AJAX异步删除操作
    数据库表结构导出sql语句
    多线程的使用
    找不到dll原因
    代码优化
  • 原文地址:https://www.cnblogs.com/AlienXu/p/10770003.html
Copyright © 2020-2023  润新知