如何使用虚拟请求启动网站初始化

时间:2018-06-29 15:55:58

标签: c# windows service iis-7 web

我有一个在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;
    }
}

如果有人能告诉我如何使用服务启动初始化过程,将不胜感激!

0 个答案:

没有答案