ASP.NET状态管理之八(应用程序Application)2012-01-22 博客园 aierongASP.NET 允许您使用应用程序状态来保存每个活动的 Web 应用程序的值,应用程序状态是 HttpApplicationState 类的一个实例。应用程序状态是一种全局存储机制,可从 Web 应用程序中的所有页面访问。因此,应用程序状态可用于存储需要在服务器往返行程之间及页请求之间维护的信息。应用程序状态存储在一个键/值字典中,在每次请求一个特定的 URL 期间就会创建这样一个字典。可以将特定于应用程序的信息添加到此结构以在页请求期间存储它。一旦将应用程序特定的信息添加到应用程序状态中,服务器就会管理该对象。应用程序状态是可用于 ASP.NET 应用程序中的所有类的数据储存库。应用程序状态存储于服务器的内存中,并且比在数据库中存储和检索数据的速度更快。与特定于单个用户会话的会话状态不同,应用程序状态应用于所有的用户和会话。因此,应用程序状态非常适合存储那些数量少、不随用户的变化而变化的常用数据。应用程序状态存储于 HttpApplicationState 类中,用户首次访问应用程序中的 URL 资源时将创建该类的新实例。HttpApplicationState 类通过 Application 属性公开。如何:从应用程序状态中读取值应用程序状态存储类型化为 Object 的数据。因此,即使将数据存储于应用程序状态中时不必对其进行序列化,也必须在检索数据时将其强制转换为相应的类型。确定应用程序变量是否存在,然后在访问该变量时将其转换为相应的类型。下面的代码示例检索应用程序状态值 AppStartTime,并将其转换为一个 DateTime 类型的、名为 appStateTime 的变量。
if (Application["AppStartTime"] != null){  DateTime myAppStartTime = (DateTime)Application["AppStartTime"];}如何:保存应用程序状态中的值由于应用程序状态存储在服务器的内存中,因此应用程序状态中的大量数据可快速填充服务器内存。如果重新启动应用程序,应用程序状态数据便会丢失。应用程序状态无法在网络场中的多台服务器间或网络园中的辅助进程间共享。最后还请注意,应用程序状态采用自由线程模式,因此存储在应用程序状态中的任何数据必须具有内置的同步支持。将值写入应用程序状态在应用程序中设置 HttpApplicationState 类中变量的值。下面的代码示例演示如何将应用程序变量 Message 设置为一个字符串。Application["Message"] = "Welcome to the Contoso site.";应用程序启动时将值写入应用程序状态