我有一个在IIS7中运行的网站,当应用程序池回收(包含非常大的连接服务)时,该网站将永远启动。该应用程序池每天晚上在午夜回收,因此在早上发出第一个请求时,启动起来极其缓慢。我一直在尝试通过使用Windows服务在凌晨12点至凌晨6点之间每2小时用空的POST请求对它进行命中并触发初始化过程来解决此问题,但是它似乎没有用。这是该服务的代码:
protected override void OnStart(string[] args)
{
timer = new Timer(120 * 60 * 1000);
timer.Elapsed += new ElapsedEventHandler(Timer_Elapsed);
timer.Start();
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
try
{
DateTime startTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 0, 0, 0);
DateTime endTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 6, 0, 0);
if (DateTime.Now > startTime && DateTime.Now < endTime)
{
using (WebClient client = new WebClient())
{
client.UseDefaultCredentials = true;
client.UploadData("https://websitename/KeepAlive.aspx", new byte[0]);
}
}
}
catch (Exception ex)
{
string msg = ex.Message;
}
}
如果有人能告诉我如何使用服务启动初始化过程,将不胜感激!