哎,以前的系统session总是莫名其妙的丢失,放服务器进程里也不行。老是丢失,然后客户端就无缘故的退出了。你设置session时间为1个小时也不行。最后无奈,把session放数据库里了。哈,问题解决了。用了1个星期了暂时没客户反映出问题。也许每个人的需求不同吧,但是我仍旧觉得session放数据库里保险。具体设置方法,不会的跟帖,我回复。
解决方案 »
- repeater 绑定,但有的字段是sql语句计算出来的。。。
- gridview 选择
- 角色与表应用问题的问题?
- repeater中的翻页问题请教,急?
- 关于错误页面显示
- DataGrid问题?
- 请问怎么操作datalist模板中的按钮?小妹在线等
- 哪位兄弟有包括TREEVIEW那个控件的安装包麻烦发一个
- 对于培训这个老话题大家怎么看?
- 每改一个文件,发布后就要重新传全部的aspx文件,很麻烦啊
- 错误 2 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟
- 请教,如何把一个文件夹在项目里去除,但是放在网站的目录下
是不是在数据库 某个表里建个字段 然后把session值扔进去啊
Session 保存数据库???
数据库是最安全的~~~
解释一下,说说经验之谈。
1、设置为将Session存储在独立的状态服务中。性能损失10-15%
2、设置将Session存储在SQL Server中 性能损失10-20%
cd进入到“x:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”
(不懂怎么操作cmd的,我也无奈了)二,在cmd里继续写:
aspnet_regsql.exe -S 服务器ip -U 数据库登录名 -P 数据库密码 -d 所要放入的数据库 -ssadd -sstype c
例如
aspnet_regsql.exe -S 127.0.0.1 -U sa -P 7654321 -d StudentSession -ssadd -sstype c所要放入的数据库:用你正在做的系统的数据库也可以,也可以写个新数据库。
例如我那条语句呀,我正在做一个学生系统,有个数据库student。
我想把session放入StudentSession 这个数据库里。
你执行完那句话就帮你创建好了这个数据库了,默认里边有几个表,和很多视图与存储过程。三,在web.config里写<sessionState mode="SQLServer"
sqlConnectionString="server=127.0.0.1; database=StudentSession ;uid=sa ;pwd=7654321;"
allowCustomSqlDatabase="True"
cookieless="false"
timeout="20" />
还有不懂的就email给偶:[email protected]
——————————————————————————————————————————
同志们,这个就是全部操作方法呀。
没有代码,代码都不用写,就这么按步骤做就可以了。
在c#没有一句相关的代码。仅在web.config里设置下就可以了。
建议开启一个线程.....
如果要用NET FARM..那么请启用状态服务器,IIS的ASP.NET配置那里改掉,不用InProcess Session另外两个就是Session State Service
和SQLserver另外你可以自己实现Session接口.用MemChached之类的C语言缓存....在分布式下面非常有优势...呵呵前段时间也遇到这个鸟问题了
这样自动就更新到数据库里了。
但是如果取得时候呢?取得时候是取session里的还是取数据库里的。
还有个问题:你是因为session经常丢失而采取此方法的吧?
如果session丢失了,那么数据库中的记录是不是也跟着清空了?
那如果是的话,你这样根本没解决session丢失的问题啊?
每次取session,都会执行一个存储过程。
虽然注意性能上有损失,但是安全性提高了。至于session丢失的问题?既然存放到数据库了,就不存在丢失的问题了。
当然有过期时间,你可以在web.config里设定了。
那为什么你保存到数据库里,session就不丢失了呢?
session是放在服务器内存中的,
是不是用你的方法后,session的存取就到数据库中了,就不在服务器的内存中了,所以就不会存在丢失的问题了?
怎么操作,数据库才会自动插入一条记录?
session["?1"]=?2;问号1是什么?问号2是什么?不对?那该怎么写?
开始——运行——cmd
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
说明:
cd:Change Direcory
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727(安装.net framework的路径)
改变目录后,继续输入
aspnet_regsql.exe -S 数据库服务器ip/服务器登录名 -U 数据库登录名 -P 数据库密码 -d 所要放入的数据库 -ssadd -sstype c
例如
aspnet_regsql.exe -S 127.0.0.1 -U sa -P 7654321 -d StudentSession -ssadd -sstype c
保存session的数据库可以使系统正在使用的数据库,也可以是其它数据库。
执行上面语句,会创建StudentSession数据库,以存放session。
配置web.config
<system.web>
<sessionState mode="SQLServer" sqlConnectionString="server=127.0.0.1;database=StuSession;uid=sa;pwd=7654321;" allowCustomSqlDatabase="true" cookieless="false" timeout="20"></sessionState></system.web>
你这句可不可以对远程的服务器用呢? 远程的服务器能不能这样?
我是来拿分的~
aspnet_regsql.exe -S 服务器ip -U 数据库登录名 -P 数据库密码 -d 所要放入的数据库 -ssadd -sstype c
例如
aspnet_regsql.exe -S 127.0.0.1 -U sa -P 7654321 -d StudentSession -ssadd -sstype c
什么怎么理解,怎么打开运行,不会?
还是怎么进入cd进入到“x:\WINDOWS\Microsoft.NET\Framework\v2.0.50727” 不会呢?
不能插入记录。
启动StateServer