仅创建了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.ConcurrentDictionary2.GetOrAdd(TKey key, Func
2 valueFactory处) 在Hangfire.Common.TypeHelper.CachedAssemblyResolver(AssemblyName assemblyName)处 在System.TypeNameParser.ResolveAssembly(String asmName,Func2 assemblyResolver, Boolean throwOnError, StackCrawlMark& stackMark) at System.TypeNameParser.ConstructType(Func
2 assemblyResolver,Func4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) at System.TypeNameParser.GetType(String typeName, Func
2 AssemblyResolver,Func4 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为目标)。我很困在这里。可以使用任何帮助。