global.asax文件中的Context为null

时间:2016-02-11 13:10:23

标签: asp.net

我有global.asax文件,我使用这两个函数通过此代码每15秒更新一次缓存值:

protected void Application_Start(object sender,EventArgs e)
{
    Context.Cache.Insert("value","some value",null,DateTime.Now.AddSeconds(15),Cache.NoSlidingExpiration,CacheItemProirirt.Default,new CacheItemRemovedCallback(updating));
}

private void updating(string key,object value,CacheItemRemoveReason reason)
{
    Context.Cache.Insert("value","updated value",null,DateTime.Now.AddSeconds(15),Cache.NoSlidingExpiration,CacheItemProirirt.Default,new CacheItemRemovedCallback(updating));
}

但它给了我一个NullReferenceException,并且上下文为null,请为什么我不能在"更新"功能

1 个答案:

答案 0 :(得分:2)

Application_Start没有任何背景信息。

第一个事件是Begin_Request

当特定网站第一次被激活或被回收后,会发生

Application_Start

为了保持缓存项目的续订,我建议你在Begin_Request中执行此操作,在那里检查它是否存在,如果没有,请重新启动它。

这样,它只会在网站被点击时使用内存,否则不会。