Служба Hangfire & Windows: задания не обрабатываются службой Windows - PullRequest
0 голосов
/ 09 мая 2019

Только что создал службу Windows, чтобы попытаться запустить мои задания за пределами WebApp.Итак, сервис установлен и я запустил его вручную.

Если я захожу на панель управления Hangfire, я вижу, что новый работающий сервер говорит, что он активен.Пока все в порядке.

Проблема начинается с моего веб-приложения.Я предполагал, что для запуска заданий в службе мне пришлось удалить services.AddHangfireServer(); из моего Startup.cs, чтобы только сервер Hangfire, созданный службой Windows, работал.

Затем, если я начну ставить в очередь некоторыезадания из моего веб-приложения, задания собираются на Scheduled со следующей ошибкой:

System.IO.FileNotFoundException
Не удалось загрузить файл или сборку 'Cri.Interactif.GenerateurCodes.Web,PublicKeyToken = null 'или одна из его зависимостей.Системе не удается найти указанный файл.

в System.Reflection.RuntimeAssembly._nLoad (имя_файла AssemblyName, строковое codeBase, свидетельство assemblySecurity, местоположение TimetimeAssemblyHint, StackCrawlMark & ​​stackMark, IntPtr pPrivHostBinder, BooleanSecurityFound, BooleanSecurityFound, BooleanSecurityFone)
в System.Reflection.RuntimeAssembly.nLoad (имя_файла_сборки, кодовая строка строки, сборка доказательствSecurity, расположениеHame сборочного узлаHint, StackCrawlMark & ​​stackMark, IntPtr pPrivHostBinder, логическое_обрабатывающее_обрабатывающее_применение, Доказательство assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark & ​​stackMark, IntPtr pPrivHostBinder, Булево значение throwOnFileNotFound, Логическое значение forIntrospection, Логическое подавлениеSecurityChecks) в System.Reflection.Assembly.Loef.HemonFameesolver (String assemblyString) в System.Collections.Concurrent.ConcurrentDictionary 2.GetOrAdd(TKey key, Func 2 valueFactory) в Hangfire.Common.TypeHelper.CachedAssemblyResolver (AssemblyName assemblyName) в System.TypeNameParser.ResolveAssembly, Func 4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) at System.TypeNameParser.GetType(String typeName, Func 2 AssemblyResolver, Func 4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) at System.Type.GetType(String typeName, Func 2 AssemblyResolver, Func`4 typeResolver, Boolean throwOnError) в Hangfire.Common.TypeHelper.DefaultTypeResolver (имя типа строки) в Hangfire.Storage.InvocationData.D22 * 102321 (1023)* Кто-нибудь сталкивался с этим раньше?

Кажется, что служба Windows не может получить доступ к методам в моем основном приложении asp.net, поэтому я что-то пропустил в конфигурации?

В документации Hangfire ничего не говорится о ссылках на веб-проект (что было бы невозможно в любом случае из-за службы, нацеленной на .net framework 4.7.2, когда веб-проект нацелен на .net core 2.1 ..Я так застрял здесь.Могли бы воспользоваться любой помощью.

...