尝试将 hangfire 与企业库一起使用失败并出现 "could not loat ITypeRegistrationsProvider type" 异常

Trying to use hangfire with enterprise library fails with "could not loat ITypeRegistrationsProvider type" exception

我有一个使用 Enterprise Library 的 ASP.NET 应用程序。

当我安装 Hangfire nuget pacakge 时,应用程序拒绝启动并抛出此异常:

TypeLoadException: Could not load type 'Microsoft.Practices.EnterpriseLibrary.Common.Configuration.ContainerModel.ITypeRegistrationsProvider' from assembly 'Microsoft.Practices.EnterpriseLibrary.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

如果我删除 Microsoft.Owin.Host.SystemWeb Nuget 包,应用程序运行正常,但不会调用 OWIN 启动 class,我无法使用 Hangfire 中间件。

我怎样才能让它发挥作用?

这是当您尝试在还包括企业库的 ASP.NET 应用程序中使用 OWIN 时某些配置会发生的一般错误。

解决方案,以及对问题的解释,can be found here。简而言之,解决方案是在 web.configappSettings 中配置启动 class,如下所示:

<appSettings>  
  <add key="owin:AppStartup" value="-- your startup class --" />       
</appSettings>