У меня есть веб-сайт, работающий в IIS7, который запускается вечно, когда пул приложений перезагружается (он содержит очень большую подключенную службу). Пул приложений перезагружается каждую ночь в полночь, поэтому, когда утром делается первый запрос, он запускается ОЧЕНЬ медленно. Я пытался исправить это с помощью службы Windows, чтобы отправлять пустые запросы POST каждые 2 часа между 12 и 6 часами утра и запускать процесс инициализации, но, похоже, он не работает. Вот код услуги:
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;
}
}
Если бы кто-нибудь мог сообщить мне о том, как запустить процесс инициализации с помощью службы, это было бы очень признательно!