2016-08-30 25 views
1

У меня есть следующая работа, запланированная для запуска каждую минуту с помощью hangfire, чтобы попытаться сохранить мой сайт, но он все еще, кажется, простаивает? Я только что проверил замедленное воспламенение панель и выглядит как работа никогда не наехал на выходные presumembly, потому что никто не зашел на сайт (обратите внимание, что это приложение интранета)ASP.NET Application Idle Timeout и утилита для пула приложений

try 
{ 
    var url = "http://xyz.domain.com/myapp" 
    var request = (HttpWebRequest)WebRequest.Create(url); 
    request.Timeout = 6000; 
    request.AllowAutoRedirect = false; 
    request.Method = "HEAD"; 

    using (var response = request.GetResponse()) 
    { 
       // TO DO 
    } 
} 
catch (Exception ex) 
{ 
    logger.Error(ex, "Error in KeepAlive job"); 
} 

бы с помощью WebClient быть более надежным, или это то же самое как использование HttpWebRequest, как показано ниже -что-то:

WebClient webClient = new WebClient(); 
Stream stream = webClient.OpenRead("http://xyz.domain.com/myapp"); 

ответ

1

по умолчанию экземпляр замедленное воспламенение сервера в веб-приложение не будет запускаться, пока первый пользователь не попадает на ваш сайт. Более того, есть некоторые события, которые принесут ваше веб-приложение через некоторое время (я говорю об Idle Timeout и различных событиях утилизации пула приложений). В этих случаях ваши повторяющиеся задачи и отложенные задания не будут выставлены в очередь, а заданные в очереди задания не будут обработаны.

Это особенно верно для небольших сайтов, так как могут быть длительные периоды бездействия пользователей. Но если вы выполняете критические задания, вы должны убедиться, что ваш экземпляр Hangfire Server всегда работает, чтобы гарантировать своевременную обработку задания.

http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

 Смежные вопросы

  • Нет связанных вопросов^_^