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.



  • Added – Ability to use custom type resolvers to modify the type de-serialization logic.
  • FixedJobLoadException when processing jobs in .NET Framework, which were created in .NET Core.
  • FixedJobLoadException 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.


  • 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).

Subscribe to monthly updates

Subscribe to receive monthly blog updates. Very low traffic, you are able to unsubscribe at any time.