讨论:session的三种模式优劣

exing 2004-08-16 04:25:25
ASP.NET 中有三种会话状态模式。我们可以在进程内、状态服务器和 SQL Server 之间选择
到底这三种模式孰优孰劣?
1.速度;
2.稳定性;
3.资源的耗费情况;
等等吧

做项目的时候,偶尔会有session丢失,虽然几率不大,但损失却未必
...全文
250 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
dai2003 2004-08-19
  • 打赏
  • 举报
回复
session大多數情況下都用ni-prossess,不過如果你覺得太不太安全的話,你可以設置session的timeout或一但出現session為空的話你就去做另外的事情,這樣就不會感覺到不安全了,而且session in-prossess比較的方便
exing 2004-08-19
  • 打赏
  • 举报
回复
up
exing 2004-08-18
  • 打赏
  • 举报
回复
我看了微软SQLserver方式,用于生成存储session表的脚本InstallSqlState.sql,里用了许多存储过程,速度应该会快一些
有谁用过这种方式?
yingshis 2004-08-18
  • 打赏
  • 举报
回复
up
exing 2004-08-18
  • 打赏
  • 举报
回复
up
darren_zhu_NZ 2004-08-17
  • 打赏
  • 举报
回复
内存和硬盘读取速度的差别. 数据多了就会明显了
exing 2004-08-17
  • 打赏
  • 举报
回复
up
exing 2004-08-17
  • 打赏
  • 举报
回复
不知道用sqlserver方式,速度影响很大吗 ?
sneak 2004-08-17
  • 打赏
  • 举报
回复
进程内保持的时间生命周期是用户打开的一个浏览器窗口内有效,但速度效率最高。而状态服务器则可实现在用户的不同浏览器窗口内有效,如用户在一个窗口打开另一个窗口,此时二窗口都可以使用。而SqlServer则在服务器断电后仍然保持相应的信息,以便恢复,一般没必要用到。且速度最慢。
darren_zhu_NZ 2004-08-17
  • 打赏
  • 举报
回复
我挺喜欢Session的,但似乎浏览器不支持cookie的话就不能用了. 另外Session只能在一个AppDomain用, 如果我想要在两个网站间传递信息就不可能了. 只要机器不死机,内存不烧坏, Session基本上没什么问题的.

不过要是放datatable的话用完session最好remove了,不然消耗太多内存了.
exing 2004-08-17
  • 打赏
  • 举报
回复
大家讲讲
exing 2004-08-16
  • 打赏
  • 举报
回复
问题是,有时候要用datatable放许多数据,这时就用session来保持数据状态,但我对session的性能有些担心,所有有上面一问
zheninchangjiang 2004-08-16
  • 打赏
  • 举报
回复
mark
darren_zhu_NZ 2004-08-16
  • 打赏
  • 举报
回复
查了一下
1. 资源消耗: in-process < state server < sql server
2. 稳定性: in-process < state server < sql server
3. 速度: in-process << state server < sql server

大多数情况下都用in-process, 除非你的state要在不同的AppDomain跳来跳去
darren_zhu_NZ 2004-08-16
  • 打赏
  • 举报
回复
两个out-process和in-process相比,速度会慢很多.


BTW: 搂住的题目应该问: state的三种模式优劣 :)
darren_zhu_NZ 2004-08-16
  • 打赏
  • 举报
回复
Session应该属于in-process的吧?
in-process的缺点就是指针对一个web server,并且如果worker process死掉了, state就没了.

第二个选择是state server,可以在mmc里面设置,东西都放内存了,不受web server限制. 但一旦state server services重启后,东西也没了.

sql server: 写到数据库, 速度慢, 但安全
kingnew 2004-08-16
  • 打赏
  • 举报
回复
我一般都用第一种,效率最高
至于使用 sql server我一般都用数据库自己写,灵活性更大一些,当然效率是最低的了。
bryanfan 2004-08-16
  • 打赏
  • 举报
回复
如何保存到SQL SERVER中呢
exing 2004-08-16
  • 打赏
  • 举报
回复
有道理
八爪鱼-杭州 2004-08-16
  • 打赏
  • 举报
回复
适用场景不一样,所以拿这三个参数来比较没什么意思

要以这三个参数为标准的话,无疑是在进程内最好
但是第一种方式没有办法在出现意外的情况下保存会话状态,也不能支持服务器群集/负载平衡
保存在Sql Server中可以允话你的会话数据非常大

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧