如题,请问基于SQL的Session比基于进程的Session有哪些优越之处和不足之处?分别在什么情况下使用?

解决方案 »

  1.   

    InProc
     设置为将Session存储在进程内,就是ASP中的存储方式,这是默认值。
     StateServer
     设置为将Session存储在独立的状态服务中。通常是aspnet_state.exe进程.
    SQLServer
     设置将Session存储在SQL Server中。
    SqlServer模式:
     要保存在Session中的对象是可序列化的。
    如果使用了默认是数据库, 则在客户端配置文件中的数据库链接字符串的用户,需要拥有ASPState和tempdb两个库的dbowner权限.
    在SQLServer模式下,session过期是由SQL Agent使用一个注册任务完成的,要确认SQL Agent已经运行。否则无法清理过期的Session数据, 会导致数据库数据一直增加. 
      

  2.   

    进程的 Session 在 IIS 或 应用程序重启(如web.config修改),都会丢失。但SQL Server方式的却不会。如非必要,个人感觉进程足够了。
      

  3.   

    那么在高并发的情况下,会不会给SQL SERVER带来很大的压力?毕竟这两个东西是分离的,访问口径都比较小