我无法保存applicationHost.config文件,它说"保存失败,它在另一个程序中打开",而我停止IIS服务并关闭视觉工作室,任何想法?
我使用Quartz.Net上的ASP.Net框架4,WebForms的网站.基本上,用户应该无法手动触发批处理脚本,该脚本异步处理存储在数据库中的数千条记录.用户可以随时停止或暂停,调整一些变量,并在需要时继续处理(剩余记录).
代码在本地完成并运行(开发人员机器,win7,vs2010,sql server express 2008 R2).
它还在本地服务器上进行了测试(win server 2008 R2,sql server express 2008 R2).它在两个环境中都能正常工作,并使用预编译的所有代码进行测试.问题是,一旦部署在远程服务器(win server 2008 R2)上,它实际上应该在其上运行(托管环境,不共享,不集群),它并不完全有效(详情见下文).调度程序已创建,但触发器(即作业)不会触发.
(注意:我知道有些人会建议使用Quartz作为Windows服务,但尽管有这样做的好处,我真的想知道为什么它不能用作嵌入式解决方案,因为它应该工作得很好喜欢本地)
Quartz 2.1.2
Common.Logging 2.1.2
Common.Logging.NLog 2.0.0
NLog 2.0.1.2
Run Code Online (Sandbox Code Playgroud)
Global.asax中
public static ISchedulerFactory SchedulerFactory;
public static IScheduler Scheduler;
void Application_Start(object sender, EventArgs e)
{
SchedulerFactory = new StdSchedulerFactory();
Scheduler = SchedulerFactory.GetScheduler();
// Define a durable job instance (durable jobs can exist without triggers)
IJobDetail job = JobBuilder.Create<MyJobClass>()
.WithIdentity("MyJob", "MyGroup")
.StoreDurably()
.Build(); …Run Code Online (Sandbox Code Playgroud) 我在我的asp网站中使用quartz,我在application_start方法中初始化调度程序并在application_end方法中关闭,我的触发器每天都会触发,但我发现如果有一段时间没有请求,我的调度程序会自动关闭,所以我的后台工作不会触发,有没有更好的方法来保持调度程序的生命周期长并且只在服务器停止时关闭?