【问题标题】:Could not convert string 'Log4netFactory' to a type无法将字符串“Log4netFactory”转换为类型
【发布时间】:2018-01-13 20:44:16
【问题描述】:

我最近在 NuGet 控制台中使用这行代码更新了我的项目中的 ABP 包:

ForEach($project in get-project -all) {
 ForEach($package in Get-Package -ProjectName $project.ProjectName | ?{ $_.Id -like 'Abp*'}) {
  Update-Package -ProjectName $project.ProjectName -Id $package.Id;} }

但是当我启动项目时,我遇到了这个错误:

Castle.Windsor.dll 中出现“Castle.MicroKernel.SubSystems.Conversion.ConverterException”类型的异常,但未在用户代码中处理附加信息:无法转换字符串“Castle.Services.Logging.Log4netIntegration.Log4netFactory, Castle.Services.Logging.Log4netIntegration,Version=4.0.0.0, Culture=neutral,PublicKeyToken=407dd0808d44fbdc' 到一个类型。

这发生在Application_Start的这行代码中:

AbpBootstrapper.IocManager.IocContainer.AddFacility<LoggingFacility>(
    f => f.UseLog4Net().WithConfig("log4net.config")
);

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net-mvc integration log4net aspnetboilerplate castle


    【解决方案1】:

    你可以使用 Abp.Castle.Log4Net 包。见document

    【讨论】:

      【解决方案2】:

      创建该函数并从错误行调用它

          LogConfig("log4net.config");
      

         private void LogConfig(string configFileName)
          {
              var log4NetConfig = System.IO.Path.Combine(HostingEnvironment.ApplicationPhysicalPath, configFileName);
              if (System.IO.File.Exists(log4NetConfig))
                  AbpBootstrapper.IocManager.IocContainer.AddFacility<LoggingFacility>(
                      f => f.UseAbpLog4Net().WithConfig(log4NetConfig)
                  );
          }
      

      看到这个答案https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2611#issuecomment-337471760

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多