HttpRuntime缓存停止工作

本文关键字:停止工作 缓存 HttpRuntime | 更新日期: 2023-09-27 18:04:25

我使用httpruntime缓存每30分钟运行一段代码。该站点托管在共享环境中。直到上个星期,它一直都很好用。没有修改代码,但是它停止工作了。

除了"Application Started"的邮件,我没有收到任何其他的邮件。关于如何找到问题有什么建议吗?

谢谢。

    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");
    }

HttpRuntime缓存停止工作

一个可能的原因是IIS应用程序池中的空闲超时设置。缺省值为20分钟。这将导致您的网站"关闭",并且您的缓存删除事件不会触发。