This version finally fixes interoperability issues that arise, because primitive built-in types like String
reside in assemblies with different name in .NET Core (System.Private.CoreLib.dll
) and .NET Framework (mscorlib.dll
). This led to JobLoadException
in .NET Framework-based applications, when they tried to perform background jobs created by a .NET Core-based one. The new version solves this problem by re-writing assembly name when resolving a type for a job and its parameters.
The new version also brings support for custom type resolver callbacks that you can specify by calling the IGlobalConfiguration.UseTypeResolver
method, so you can use it in non-trivial cases. Additionally, there’s now a way to strip assembly version and private key when resolving a type. This is useful, when you are storing your background jobs in signed assemblies and want to change its version without causing a lot of JobLoadException
. Please see the following code snippet to enable this behavior.
GlobalConfiguration.Configuration
.UseXXX()
.UseIgnoredAssemblyVersionTypeResolver();
Hangfire.Core
- Added – Ability to use custom type resolvers to modify the type de-serialization logic.
-
Fixed –
JobLoadException
when processing jobs in .NET Framework, which were created in .NET Core. -
Fixed –
JobLoadException
when jobs reside in a signed assembly and a new version is deployed. - Fixed – Don’t produce extra logging message when there’s an exception in a worker.
- Fixed – Ensure form values are properly returned when there are different versions of Microsoft.Owin (by @DC-jc).
- Fixed – Dashboard fails with 404 “Not Found” error if there’s a trailing slash for some reason.
Hangfire.SqlServer
-
Added – Connection factory overload for the
SqlServerStorage
class (by @chinwobble). - Fixed – Inability to use package with Azure’s managed service identity (by using a connection factory).