Application管理应用程序
与主要作为用户的专用存储器的Session不同,Application是共享的应用程序存储器。这种共享的存储器非常有用,在所有用户共享了某些资源(如某个站点的购物目录的XML表达式)的情况下尤其如此。与Session相似,Application状态只是一个存储关键字或值对组合的Hashtable。
另外一方面,与Session不同的是,Application不支持独立于ASP.NET进程之外的数据存储。因为它是在ASP.NET进程中存储数据的。如果ASP.NET进程循环了,那么Application数据就会丢失。实际上,在进程中存储数据要比到其他检索数据块,而且到其他进程的过程中可能会出现跨网络的情况。
利用Application设定和访问值使用的语法和Session一样的,只不过有一个例外。由于Application在多用户环境下是可访问的,所以更新到Application值应该是同步的。这意味着不管任何时候,只要Application数据正在更新,那么我们就应该防止其他用户或应用程序同时更新数据。不过幸好Application为我们提供了一种锁定方法的简单设置使我们可以做到这一点。如果ASP.NET进程停止或循环,那么Application状态就会丢失。不过,当进程循环的时候,会引发Application_onend事件,同时值会保存在一个数据库或者一个文件中。