zoukankan      html  css  js  c++  java
  • asp.net的session的模式

    在开发中通过webconfig配置session的时长,了解到session是有多种模式的,所以总结一下。

    一、session定义

    session是web中的会话,因为http是不保存状态的无状态协议,所以浏览器请求服务器产生响应,如果同一个浏览器再一次请求,服务器不知道请求是谁,没有保存状态。通过使用session会话的机制,在第一次请求的时候服务器生成唯一的session信息返回给浏览器,浏览器再次访问时候带上session信息在服务器进行查找会话,实现有状态的响应,其中session可以保持在浏览器的cookie中达到保存标识的作用。

    二、session的模式

    1、InProc(默认类型,存储在内存中)

    在webconfig中进行配置<sessionState mode="InProc" timeout="30" />其中timeout是session的过期时间,该模式也是默认模式,其过期时间默认20分钟,session存储在内存中。

    优缺点:最快,最通用的默认形式,对象不需要进行序列化和反序列化存储(内存的形式),IIS重启或者工作进行被回收会失去session,session数据过大或者过多,影响内存的性能。

     2、StateServer(asp.net_state.exe服务中)

    使用一个独立的Windows服务提供session服务,独立于IIS,可以使用单独一台服务器。首先要开启asp.net_state.exe服务,并且在注册表中设置为自启动。然后在webconfig中进行配置<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" stateNetworkTimeout="40" />。

    优缺点:数据可以在不同应用程序上共享,性能瓶颈,数据要序列化和反序列化,两个不同的进程,进行通信读写消耗性能。

    3、SQLServer(存储在sql server数据库中)

    session保存在数据库中,通过在sqlserver创建session存储的数据库表,创建session是会在表中保存一条session的数据,过期时间等。

    通过命令在数据库创建session数据库C:WindowsMicrosoft.NETFrameworkv4.0.30319 aspnet_regsql -S DESKTOP-51KBM4ASA -U sa -P 123456 -ssadd -sstype p
    在webconfig中进行配置<sessionState mode="SQLServer" sqlConnectionString="data source=DESKTOP-51KBM4ASA;user id=sa;password=123456" cookieless="false" timeout="20"></sessionState>

    优缺点:session不受IIS重启的影响,不会因为IIS重启失去session,最可靠和安全的session模式,数据共享,对象的序列化和反序列化影响性能。

    4、Off(关闭session )
    <sessionState mode="Off"/>

    5、自定义session

  • 相关阅读:
    Cocos Creator 功能介绍
    Cocos Creator 功能介绍
    Cocos Creator打包发布
    Cocos CreatorUI系统下
    Web前端开发工具和环境清单
    Web前端开发工具和环境清单
    Cocos CreatorUI系统上
    Cocos Creator开发hello World
    前端微信小程序电影类仿淘票票微信小程序
    前端微信小程序电影类仿淘票票微信小程序
  • 原文地址:https://www.cnblogs.com/tuqunfu/p/15058617.html
Copyright © 2011-2022 走看看