Это безопасный способ сохранить приложение asp.net живым, не подвергаясь переработке? - PullRequest
2 голосов
/ 02 сентября 2010

Я запустил таймер для посещения моего приложения каждые 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 ...

Ответы [ 2 ]

5 голосов
/ 02 сентября 2010

Хотя автозапуск приложения является одним из способов поддержания его работоспособности, вы также можете настроить пул приложений в IIS так, чтобы он не перерабатывался:

alt text

Просто снимите флажок Shutdown worker processes after being idle for.Также на вкладке Recycling вы найдете другие полезные опции.

1 голос
/ 02 сентября 2010

Вы должны просто иметь возможность изменить IIS для этого. Служба IIS настроена на удаление приложений после «х» минут бездействия. Ваш код, вероятно, остановит удаление сайта из-за неактивности.

Однако IIS также по умолчанию настроен на утилизацию приложений каждые «х» минут / часов. Ваш код не остановит это. Это происходит независимо от активности. Он предназначен для устранения любых утечек памяти и т. Д., Поэтому, если вы отключите это (вы можете сделать это и в IIS), вы должны быть осторожны, чтобы производительность ваших сайтов не снижалась со временем.

...