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.exe
with a reference to my assembly? - Am I even taking the right approach? The front-end, and
Quartz.Server.exe
are using the same data store, and configured as clustered, but I am paranoid that it will operate. - Is
Quartz.Server.exe
even 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.
Just put your assembly in the same dir as the server exe, it should load it fine. You could use probePath too, but not likely needed for this.