代码之家  ›  专栏  ›  技术社区  ›  ACP

global.asax,我可以在生产服务器中更新它吗?

  •  0
  • ACP  · 技术社区  · 14 年前

    我的生产服务器上有一个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 回复  |  直到 14 年前
        1
  •  3
  •   Sruly    14 年前

    如果它不是预编译的,那么您可以在服务器上有一个不同的文件。

    如果它是预编译的,则不能在服务器上更改它。 要解决这个问题,可以使用编译符号使用不同的应用程序启动方法,或者使用定义要调用哪个方法的设置。

    如果您使用的是.NET 4,那么您可以拥有一个调试和发布web.config文件,您可以在其中设置某种条件,并在应用程序启动时检查它。