当我存储来自global.asax文件数据的数据时,我必须将数据存储在应用程序变量中。 如果我在应用程序变量中为存储数据编写相同的代码,从一段时间后丢失的任何aspx页面数据我想知道它为什么会发生,请在下面建议我的代码?
//storing data in application variable from aspx page
protected void getApplicatinVariable_Click(object sender, EventArgs e)
{
HttpContext.Current.Application[paramTypeId] = GetSelectedParameter(paramTypeId, flag);//fuction retruning string data
HttpContext.Current.ApplicationApplication["GroupUserListCache"] = CacheClass.GetGroupUserListCache();//get userlist
HttpContext.Current.ApplicationApplication["EquipListCache"] = CacheClass.GetAlarmEquipListCache();
}
//from global.asax file in dis case data persist.
Application[paramTypeId] = CacheClass.GetSelectedParameter(paramTypeId, "");
Application["GroupUserListCache"] = CacheClass.GetGroupUserListCache();//get userlist
Application["EquipListCache"] = CacheClass.GetAlarmEquipListCache();//CacheClass.SetEquipment();
答案 0 :(得分:3)
根据HttpApplicationState
上的Microsoft's documentation,HttpContext.Current.Application
的基础对象:
ASP.NET应用程序是单个Web服务器上虚拟目录及其子目录范围内的所有文件,页面,处理程序,模块和代码的总和。
当客户端第一次从特定的ASP.NET应用程序虚拟目录中请求任何URL资源时,会创建一个HttpApplicationState类的实例。为Web服务器上的每个ASP.NET应用程序创建单独的单个实例。然后通过内部Application对象公开对每个实例的引用。
应用程序状态不是在Web场(在多个服务器上托管应用程序)或Web园(在同一台计算机上跨多个进程托管应用程序)之间共享的。
从技术上讲,如果您处于共享环境中,它将不会持久存在,但对于单个应用程序,它只会在第一个请求发生时启动该类的实例。