Global.asax,我可以在生产服务器上更新吗?

时间:2010-08-26 11:07:54

标签: asp.net production-environment global-asax

我的生产服务器上有一个asp.net网站,现在运行正常。现在我使用quartz.net进行计划任务,在我的开发系统中我测试了它。我想将它移动到生产服务器。

我的global.asax目前在生产服务器中:

void Application_Start(object sender, EventArgs e)
{
    Application["Hits"] = 0;
    Application["Sessions"] = 0;
    Application["TerminatedSessions"] = 0;
    ConfigureLogging();
}

我将把它改为

void Application_Start(object sender, EventArgs e)
{
    ISchedulerFactory schedFact = new StdSchedulerFactory();
    // get a scheduler
    IScheduler sched = schedFact.GetScheduler();
    sched.Start();
    // construct job info
    JobDetail jobDetail = new JobDetail("mysSendMailJob", typeof(ScheduledMail));
    // fire every day at 06:00
    Trigger trigger = TriggerUtils.MakeDailyTrigger(06, 00);
    SimpleTrigger trigger2 = new SimpleTrigger("myTrigger",
                            null,
                            DateTime.UtcNow,
                            null,
                            SimpleTrigger.RepeatIndefinitely,
                            TimeSpan.FromSeconds(60));
    // start on the next even hour
    trigger.StartTimeUtc = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);  
    trigger.Name = "mySendMailTrigger";
    // schedule the job for execution
    sched.ScheduleJob(jobDetail, trigger2);
    // Code that runs on application startup
    Application["Hits"] = 0;
    Application["Sessions"] = 0;
    Application["TerminatedSessions"] = 0;
    ConfigureLogging();    
}

这些更改会更新还是会发生什么?

1 个答案:

答案 0 :(得分:3)

如果没有预编译,那么您可以在服务器上拥有不同的文件。

如果是预编译的,则无法在服务器上更改它。 要解决此问题,您可以使用编译符号来使用不同的application_start方法,或者使用设置来定义要调用的方法。

如果您使用的是.Net 4,您可以调试并发布web.config文件,您可以在其中设置某种条件并在应用程序旋转时检查它。