Hangfire Job throws - System.TypeLoadException

时间:2017-12-11 04:48:15

标签: hangfire

我在.net核心应用程序上使用了Hangfire(1.6.17)进行调度和重复工作......它可以正常运行2 3个作业,但是当它同时执行超过2或3个作业时,一些工作失败,一些工作进入重试部分,其中一些获得成功。

Exception
Failed
Can not change the state to ‘Enqueued’: target method was not found.

System.TypeLoadException

Could not load type ‘MyApp.Repository.AsyncScrumRepository.AsyncScrumRepository’ from assembly ‘MyApp.Repository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’.

System.TypeLoadException: Could not load type ‘MyApp.Repository.AsyncScrumRepository.AsyncScrumRepository’ from assembly ‘MyApp.Repository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null’.
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type, ObjectHandleOnStack keepalive)
at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)
at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
at System.Type.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)
at Hangfire.Storage.InvocationData.Deserialize()

当我手动触发失败并通过UI仪表板重试部分作业时,通过1或2触发,所有作业都会成功。我在生产服务器中使用它,并没有想到这种问题,现在我必须手动触发我的生产中的作业。

screenshot of exception

以下是例外

的屏幕截图

我搜索了Git和博客讨论

  1. github issue 430

  2. same issue

  3. related issue

  4. 我已经更新了我的应用程序 - 在每个解决方案项目中都有相同版本的Hangfire,从Hangfire作业调用的每个依赖方法现在都是公共方法,并且具有我的作业的特定队列名称。

0 个答案:

没有答案