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