进程内外的session

进程内session:
缺点:当访问量大的时候,会导致进程内session的重启
优点:存储速度快

进程外session:

01.将session存储在状态服务器中 asp.net state service

缺点:当访问量大的时候,会导致session池重启,数据也容易丢失
优点:存取速度相较于数据库来说更快

02.将session存在数据库中(常用)
缺点:会频繁访问数据库,加重数据库服务器的负担
优点:session会很稳定

进程内:session对象是被保存在进程的内存中,当执行如下语句时Session["data"]="123" ,“123”立即被写入Session变量中。

进程外:当前会话的所有Session变量都是在请求开始时从存储空间读入,在请求结束时才向存储空间反映Session值的变化,从请求开始到结束期间发生异常,请求会被终止,这样在此期间对Session变量的改变不会反映到存储区间。

进程外Session的配置:(都是在system.web节点下配置)只能使用其中任一个

    <!--进程外session配置到状态服务器中-->
    <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424">
    </sessionState>
    
    <!--将session配置到数据库-->
    <sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="server=.;database=aspnetDB;uid=***;pwd=***;">

其中,数据库的配置需要以下操作:

打开VS开发人员命令提示,输入:

aspnet_regsql -U sa -P 123 -ssadd -sstype c -d SessionTestDb(此处是自定义Session数据库名称)

原文地址:https://www.cnblogs.com/miaoying/p/5384961.html