Hangfire和Windows服务:Windows服务未处理作业

时间:2019-05-09 18:57:07

标签: asp.net-core windows-services hangfire

仅创建了Windows服务即可尝试在WebApp之外运行我的作业。 因此,服务已安装,我手动启动了它。

如果我转到Hangfire仪表板,则可以看到新运行的服务器说它处于活动状态。到目前为止,一切都很好。

问题始于我的Web应用程序。我以为要在服务中运行作业,必须从services.AddHangfireServer();中删除Startup.cs才能运行Windows服务创建的Hangfire服务器。

然后,如果我开始从Web应用程序排队一些作业,作业将以以下错误进入Scheduled

  

System.IO.FileNotFoundException
  无法加载文件或程序集'Cri.Interactif.GenerateurCodes.Web,PublicKeyToken = null'或其依赖项之一。系统找不到指定的文件。

     

在System.Reflection.RuntimeAssembly._nLoad(AssemblyName文件名,字符串codeBase,证据AssemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,布尔型throwOnFileNotFound,布尔型用于自省,布尔型抑制安全性检查)
  在System.Reflection.RuntimeAssembly.nLoad(AssemblyName文件名,字符串codeBase,证据assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,布尔throwOnFileNotFound,布尔值用于Introspection,布尔抑制安全检查)          在System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据assemblySecurity,RuntimeAssembly reqAssembly,StackCrawlMark&stackMark,IntPtr pPrivHostBinder,布尔型throwOnFileNotFound,布尔型用于自省,布尔型抑制安全检查)          在System.Reflection.Assembly.Load(AssemblyName assemblyRef)          在Hangfire.Common.TypeHelper.AssemblyResolver(String assemblyString)          在System.Collections.Concurrent.ConcurrentDictionary 2.GetOrAdd(TKey key, Func 2 valueFactory处)          在Hangfire.Common.TypeHelper.CachedAssemblyResolver(AssemblyName assemblyName)处          在System.TypeNameParser.ResolveAssembly(String asmName,Func 2 assemblyResolver, Boolean throwOnError, StackCrawlMark& stackMark) at System.TypeNameParser.ConstructType(Func 2 assemblyResolver,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(String typeName)          在Hangfire.Storage.InvocationData.DeserializeJob()

有人曾经历过吗?

似乎Windows服务无法访问asp.net核心应用程序中的方法,因此,我是否错过了某些配置?

Hangfire文档未提及有关引用Web项目的信息(无论如何,这都是不可能的,因为当Web项目以.net core 2.1为目标时,服务以.net Framework 4.7.2为目标)。我很困在这里。可以使用任何帮助。

0 个答案:

没有答案