Не могу поставить в очередь мою работу на сервере зависания
Я работаю над постановкой задач, используя Hangfire в моем приложении.
мое заявление о работе в очереди приведено ниже,
string jobId = BackgroundJob.Enqueue(() =>
strategy.get(typeof(_service.Engine.Summary), cpdata));
когда это успешно поставит в очередь мою работу, но получило сообщение об ошибке в таблице состояний, как это,
"FailedAt": "2018-03-21T13: 14: 46.0172303Z", "ExceptionType": "System.MissingMethodException", "ExceptionMessage": "Для этого объекта не определен конструктор без параметров.",
"ExceptionDetails": "System.MissingMethodException: для этого объекта не определен конструктор без параметров. \ R \ n в System.RuntimeTypeHandle.CreateInstance (тип RuntimeType, логический publicOnly, логический noCheck, логический и canBeCached, RuntimeMethoNecurity_and_Chent_HeNhodeCh)
в System.RuntimeType.CreateInstanceSlow(логическое publicOnly, логическое skipCheckThis, логическое fillCache, StackCrawlMark& stackMark)\r\n в System.Activator.CreateInstance (тип Type, логический nonPublic) \ r \ n в типе System.Activ \ r \ n at Hangfire.JobActivator.SimpleJobActivatorScope.Resolve(Type type) \ r \ n
в Hangfire.Server.CoreBackgroundJobPerformer.Perform(контекст PerformContext) \ r \ n в Hangfire.Server.BackgroundJobPerformer.<>c__DisplayClass8_0.b__0()\r\n в Hangfire.Server.BackgroundJobPerforxtteFF 1 продолжение) \ r \ n в Hangfire.Server.BackgroundJobPerformer.PerformJobWithFilters (контекст PerformContext, фильтры IEnumerable`1) \ r \ n в Hangfire.Server.BackgroundJobPerformer.Perform(контекст PerformContext) \ r \ n в Hangfire.er.PerformJob(контекст BackgroundProcessContext, соединение IStorageConnection, String jobId)"
Это проблема DI, которая создает этот тип ошибки?
Я использовал вызывающий метод в Enqueue, используя ссылку по этой ссылке
Например,
var strategy = new CarStrategy(new ICarFactory[] {
new Car1Factory(dep1, dep2, dep3),
new Car2Factory(dep4, dep5, dep6),
new Car3Factory(dep7, dep8, dep9)
});
Мой код такой,
var strategy = new Strategy(new ICP[] {
new _Services.Engine.Detail.Detail(),
new _1Services.Engine.Summary.Summary(),
});
var CP = PrepareCPModelForEngine(c);
string jobId = BackgroundJob.Enqueue(() =>
strategy.get(typeof(_Services.Engine.Summary.Summary), cp));