打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
c# – Hangfire配置问题(Common.Logging.Core和Common.Logging.LogManager)

我在Visual Studio 2012中通过“管理NuGet包”选项安装了Hangfire.我将SQL Server 2008 R2用于一个项目,将SQL Server 2012 Enterprise用于另一个项目.我的项目与.Net 4.0兼容,所以我无法下载与.Net4.5兼容的最新Hangfire,所以我通过NuGet下载了Hangfire(.Net 4.0).

我根据Owin& amp;的要求添加了一个新的启动文件. Hangfire配置.该文件如下:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using Hangfire;using Hangfire.SqlServer;using Microsoft.Owin;using Owin;/// <summary>/// Summary description for Startup/// </summary>/// [assembly: OwinStartup(typeof(MyProj.Startup))]namespace MyProj{    public class Startup    {        public Startup()        {            //            // TODO: Add constructor logic here            //        }        public void Configuration(IAppBuilder app)        {            app.UseHangfire(config =>            {                config.UseSqlServerStorage("ASP_NETConnectionString");                config.UseServer();            });        }    }}

Hangfire安装会自动在web.config中添加以下行:

  <runtime>    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">      <dependentAssembly>        <assemblyIdentity name="Common.Logging.Core" publicKeyToken="af08829b84f0328e" culture="neutral" />        <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />      </dependentAssembly>      <dependentAssembly>        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />        <bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0" />      </dependentAssembly>      <dependentAssembly>        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />        <bindingRedirect oldVersion="0.0.0.0-2.6.8.0" newVersion="2.6.8.0" />      </dependentAssembly>    </assemblyBinding>  </runtime>

当我运行该项目时,我在第29行收到以下错误:

Could not load type 'Common.Logging.LogManager' from assembly 'Common.Logging.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e'.   Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.  Exception Details: System.TypeLoadException: Could not load type 'Common.Logging.LogManager' from assembly 'Common.Logging.Core, Version=3.0.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e'.Source Error: Line 27:             app.UseHangfire(config =>Line 28:             {Line 29:                 config.UseSqlServerStorage("ASP_NETConnectionString");Line 30:                 config.UseServer();Line 31:             }); 

当我在web.config中注释Common.Logging.Core的依赖程序集时,我在第30行收到以下错误:

Could not load file or assembly 'Common.Logging.Core, Version=2.2.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)   Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.  Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Common.Logging.Core, Version=2.2.0.0, Culture=neutral, PublicKeyToken=af08829b84f0328e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)Source Error: Line 28:             {Line 29:                 config.UseSqlServerStorage("ASP_NETConnectionString");Line 30:                 config.UseServer();Line 31:             });Line 32:         } 

似乎有一个配置问题(不兼容)与不同版本的Common.Logging.Core dll,请注意我只有一个文件在bin文件夹中的Common.Logging.Core(V3.0.0.0),我试过找到V2.2.0.0来检查这是否会解决’无法加载Common.Logging.LogManager’但我在网上找不到这个dll,请指教.

请注意,安装没有创建HangFireConfig.cs文件.

感谢阅读和任何帮助将非常感谢.

解决方法:

我和你几乎有过相同的经历.鉴于我正在使用.Net 4和MVC 3.

为了卸载Hangfire_net40,我不得不在包目录中手动删除Microsoft.Bcl.Build.1.0.14.之后,我安装了common.logging.core 2.2.0版

Install-Package Common.Logging.Core -Version 2.2.0 

然后重新安装hangfire_net40

Install-Package Hangfire_net40

在web.config文件中,我将common.logging核心的程序集绑定行更改为this

<bindingRedirect oldVersion="0.0.0.0-2.2.0.0" newVersion="2.2.0.0" />

并确保我的项目中的引用指向2.2.0而不是3.3.0
在此之后,网络应用程序启动正常.
我想问题是Hangfire_net40 NuGet包选择了错误的日志核心包.

来源:https://www.icode9.com/content-1-262801.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Apache Common Configuration 初步使用
JUL日志实现
引用.net Core类时T4模板无法加载文件或程序集“ System.Runtime,版本= 4.2.2.0”
ASP.NET指令
.NET Core log4net 使用
Entity Framework6 with Oracle(可实现code first)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服