C# 如何让Quartz.Server.exe运行我的ASP.NET作业

C# 如何让Quartz.Server.exe运行我的ASP.NET作业,c#,asp.net,quartz.net,C#,Asp.net,Quartz.net,我有一个生成文档的ASP.NET网站。每个文档都需要一段时间才能生成,并且有许多文档请求,因此我正在探索使用Quartz.NET来帮助汇集请求,通过重新启动将它们持久化,并将它们交付给用户以获得更好的体验 Quartz.Server.exe包含在下载中,它似乎是运行Quartz作业的守护进程,即使前端未运行。这显然非常适合我这样的网络场景 主要问题是Quartz.Server.exe无法实例化我提供的作业类型 Could not load file or assembly 'quartztest

我有一个生成文档的ASP.NET网站。每个文档都需要一段时间才能生成,并且有许多文档请求,因此我正在探索使用Quartz.NET来帮助汇集请求,通过重新启动将它们持久化,并将它们交付给用户以获得更好的体验

Quartz.Server.exe
包含在下载中,它似乎是运行Quartz作业的守护进程,即使前端未运行。这显然非常适合我这样的网络场景

主要问题是Quartz.Server.exe无法实例化我提供的作业类型

Could not load file or assembly 'quartztest01' or one of its dependencies. The system cannot find the file specified. --
这很有意义,因为我的程序集
quartztest01
不在GAC中,而且
Quartz.Server.exe
对我的程序集一无所知。但当我试图解决这个问题时,提出了很多问题

  • 我不想让我的装配在GAC中。我怎样才能做到这一点?使用对我的程序集的引用重新生成Quartz.Server.exe
  • 我是否采取了正确的方法?前端和
    Quartz.Server.exe
    使用相同的数据存储,并配置为集群,但我怀疑它会运行
  • Quartz.Server.exe
    甚至是用于生产用途吗?它似乎创建了一个示例作业,对我来说,这表明它只是一个示例。我应该修改此exe以满足自己的需要吗
  • 将Quartz.NET安装为合法Windows服务而不是此控制台应用程序的最佳方法是什么

  • 只需将程序集放在与服务器exe相同的目录中,就可以很好地加载它。您也可以使用probePath,但这可能不需要

  • 您不必在GAC中安装。只需确保您的程序集与quartz.dll位于同一文件夹中,或者框架可以使用查找程序集的常用技术找到它
  • 是的,将UI用作客户端是很常见的,因此它必须指向同一个存储。不常见的是将调度程序设置为集群,除非UI也将充当服务器
  • 对。Quartz.Server.exe安装将其作为服务安装
  • @jamescomment中的链接就是答案

  • FWIW,由于IIS管理web应用程序生命周期的方式,将Quartz.net安装为服务通常是比将其嵌入ASP.net web应用程序更好的解决方案。

    安装为服务-简单的谷歌搜索-谢谢-群集的原因是web应用程序将安排作业。服务将执行它们。对我来说,很明显,因为我在同一个数据存储上使用了两个石英的“实例”,所以我需要将其标记为集群。是否正确?群集功能仅在有多台服务器执行作业时使用。如果asp.net web应用程序未运行作业,则无需将计划程序设置为群集。