I have an ASP.NET website that generates documents. Each document takes a while to generate, and there are many document requests, so I am exploring the idea of using Quartz.NET to help pool the requests, persist them through restarts, and deliver them to users for a better experience.
Quartz.Server.exe is included in the download, and it appears to be a daemon for running Quartz jobs even when the front-end is not running. This is obviously perfect for a web scenario like mine.
The main problem is that Quartz.Server.exe cannot instantiate the job type that I provide.
Could not load file or assembly 'quartztest01' or one of its dependencies. The system cannot find the file specified. --
This makes sense because my assembly, quartztest01, is not in the GAC, and Quartz.Server.exe doesn’t know anything about my assembly. But a lot of questions are raised when I try to resolve this.
- I would prefer not to have my assembly in the GAC. How can I accomplish this? Rebuild
Quartz.Server.exewith a reference to my assembly? - Am I even taking the right approach? The front-end, and
Quartz.Server.exeare using the same data store, and configured as clustered, but I am paranoid that it will operate. - Is
Quartz.Server.exeeven meant for production use? It appears to create a sample job which to me indicates it’s just meant as an example. Am I supposed to modify this exe to meet my own needs? - What is the best way to install Quartz.NET as a legitimate Windows service, instead of this console application?
FWIW, installing Quartz.net as a service is usually a better solution than embedding it into an ASP.Net web app due to the way the web application lifecycle is managed by IIS.