background image

ASP.NET Application,Session,Cookie 和 ViewState 等对象用法和区别

在 ASP.NET 中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState 和

Cache 等。下面分别介绍它们的用法和区别。

 

方法

 

信息量大小 

   

 

作用域和保存时间

 

应用范围

 

保存位

Appli

cation

 

任意大小

 

整个应用程序的生

命期

 

整个应用程序/

所有用户

 

服务器

 

Cach

e

 

任意大小

 

可以根据需要设定

 

整个应用程序/

所有用户

 

服务器

 

Sessi

on

 

小量,简单

的数据

 

用户活动时间+一

段延迟时间(一般为 20

分钟)

 

单个用户

 

服务器

 

Cooki

e

 

小量,简单

的数据

 

可以根据需要设定

 

单个用户

 

客户端

 

View

state

 

小量,简单

的数据

 

一个 Web 页面的生

命期

 

单个用户

 

客户端

 

隐藏

 

小量,简单

的数据

 

一个 Web 页面的生

命期

 

单个用户

 

客户端

 

查询

字符串

 

小量,简单

的数据

 

直到下次页面跳转

请求

 

单个用户

 

客户端

1.Application 对象
Application 用于保存所有用户的公共的数据信息,如果使用 Application 对象,一个需要考虑的问

题是任何写操作都要在 Application_OnStart 事件(global.asax)中完成.尽管使用 Application.Lock

和 Applicaiton.Unlock 方法来避免写操作的同步,但是它串行化了对 Application 对象的请求,当网站访

问量大的时候会产生严重的性能瓶颈.因此最好不要用此对象保存大的数据集合. 下面我们做个在线用户

统计的例子来说明这个问题:

(以文件的形式存放网站总访问量)
Global.asax 类
using System;
using System.Collections;
using System.ComponentModel;
using System.Web;
using System.Web.SessionState;
using System.IO;
/// Global 的摘要说明。
public