1

我有一个生成文档的 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对我的程序集一无所知。但是当我试图解决这个问题时会提出很多问题。

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

2 回答 2

2
  1. 您不必在 GAC 中安装。只需确保您的程序集与quartz.dll 位于同一文件夹中,或者框架可以使用定位程序集的常用技术找到它。
  2. 是的,让 UI 充当客户端是很常见的,因此它必须指向同一个商店。不常见的是将调度程序设置为集群,除非 UI 也将充当服务器。
  3. 是的。Quartz.Server.exe install 将其安装为服务。
  4. @James 评论中的链接就是这个问题的答案。

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

于 2012-05-14T19:07:03.313 回答
1

只需将您的程序集放在与服务器 exe 相同的目录中,它应该可以正常加载。您也可以使用 probePath,但可能不需要。

于 2012-05-14T04:18:21.753 回答