天天看点

asp.net中保持状态的方法

    asp.net中主要有4种保持状态的方法。

    1、保存在Application和Session中。

    状态保存在Application和Session中,访问方便,速度快;但是,如果过度使用,会消耗太多物理内存,当物理内存使用完后,会使用虚拟内存,这时,效率会大打折扣。而且,如果应用程序崩溃或机器宕机,状态会丢失。

    要注意的事项:

    a、如果不使用Session保存状态,在web.config中把sessionState的mode设置为off;如果只是部分使用,在不使用的页面,@page指令中设置EnableSessionState=“false”。

    b、修改Application键值时,记得先Application.lock(),用最短时间修改完,调用Application.unlock()。

    c、如果存在web场(服务器群),把状态保存在单独进程或单独状态服务器上。

    2、保存在数据库。

    状态保存在数据库,状态就具有了持久性,不管应用程序进程死掉,还是机器宕机,还是跨服务器,状态都不会丢失。当然,存取数据库影响一定的效率。有两种把状态保存到数据库的方法。

    a、设置sessionState的mode模式为SQL Server,用.net Framwork提供的脚本建立一个状态库,把Session状态保存在状态库。

    b、自己建立一些保存状态的数据表,通过不断存取,保存和使用状态。

    3、保存在web.config等文件中。

    比如数据库连接字符串,就可以保存在这个文件。

    4、使用客户端cookie。

    客户机不允许cookie的话,这种方法无效。