2015-07-23 6 views
0

Я использую кеш httpruntime для запуска фрагмента кода каждые 30 минут. Сайт размещен в общей среде. Он работал нормально до прошлой недели. Код не был изменен, но он не работал.HttpRuntime Cache перестает работать

За исключением сообщений, отправленных с помощью приложения, я еще не получил никаких других сообщений. Любое предложение о том, как найти проблему?

Спасибо.

void Application_Start(object sender, EventArgs e) 
    { 
     RegisterCache(); 
     SendEMail("Application Started"); 
    } 

    private void RegisterCache() 
    { 
     try 
     { 
      HttpRuntime.Cache.Add("dummy", "dummy", null, DateTime.UtcNow.AddMinutes(30), 
           Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, 
           new CacheItemRemovedCallback(OnCacheItemRemoved)); 
     } 
     catch (Exception ex) 
     { 
      SendEMail(ex.Message); 
     } 
    } 

    public void OnCacheItemRemoved(string key, object value, CacheItemRemovedReason reason) 
    { 
     try 
     { 
      RegisterCache(); 
      // ... get data from the interweb, email data... 
     } 
     catch (Exception ex) 
     { 
      SendEMail(ex.Message); 
     } 
     finally 
     { 
      SendEMail("Cache Item Removed"); 
     } 
    } 

    void Application_End(object sender, EventArgs e) 
    { 
     SendEMail("Application Ended"); 
    } 

ответ

1

Возможной причиной может быть установка тайм-аута простоя в пуле приложений IIS. По умолчанию установлено значение 20 минут. Это может привести к тому, что ваш сайт «выключится», и ваше кеш-событие не будет срабатывать.