2

我已经启动了一个计时器,每 20 分钟访问一次我的应用Applicaiton_start程序global.asax

void Application_Start(object sender, EventArgs e) 
{
System.Timers.Timer tm = new System.Timers.Timer(20 * 60 * 1000);
tm.Elapsed += new System.Timers.ElapsedEventHandler(tm_Elapsed);
}

void tm_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
System.Net.WebRequest rqst = System.Net.WebRequest.Create("MySite URL");
rqst.GetResponse();
}

这是一种安全的方式还是其他方式。我这样做是为了使用quartz.net 执行计划作业...

4

2 回答 2

5

虽然自动执行应用程序是使其保持活动状态的一种方法,但您还可以将 IIS 中的应用程序池配置为不回收:

替代文字

只需取消选中Shutdown worker processes after being idle for复选框即可。同样在Recycling选项卡上,您会发现其他有用的选项。

于 2010-09-02T13:18:24.577 回答
1

您应该能够修改 IIS 来执行此操作。IIS 设置为在“x”分钟不活动后关闭应用程序。由于不活动,您的代码可能会阻止该站点被删除。

但是,IIS 也默认设置为每“x”分钟/小时回收一次应用程序。您的代码不会阻止这一点。无论活动如何,它都会发生。它旨在清除任何内存泄漏等,因此如果您将其关闭(您也可以在 IIS 中执行此操作),那么您必须小心您的网站性能不会随着时间的推移而降低。

于 2010-09-02T13:21:03.197 回答