您的位置:首页 > 其它

还是那个session超时数据丢失问题,乱七八糟的。

2007-07-27 16:12 267 查看
Session问题是老问题了,一直都没有很好的解决办法。
kgdiwss(∮明天去要饭) 于 2005-7-28 12:56:58
超时?还是丢失?
mokermo(mokermo) 于 2005-7-28 13:03:36
设置session的超时时间长一点,或者过段时间自动触发对页面刷新,保持后台session
haolaiwu(夜风) 于 2005-7-28 13:13:47
按道理有些机器可以,另外的机器上也应该是可以的啊!!
gyf19(秋天的云) 于 2005-7-28 13:19:22
session很难解决!!
PPLUNCLE(人最可怕的是没有了方向) 于 2005-7-28 13:22:50
在有的机器上session正常,有的老是丢失
sp1234(就要离开兰州了) 于 2005-7-28 13:38:04
如果你的Session中要长时间保存数据,不要使用InProc方式。
WTaoboy(SnowMans) 于 2005-7-28 13:48:40
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>

启动ASP.NET state Service 服务
PPLUNCLE(人最可怕的是没有了方向) 于 2005-7-28 16:15:33
WTaoboy(SnowMans) 我改了,但是还是没用,最郁闷的是session不正常的客户那边一个重要领导的机器。
drk928(一起看斜阳) 于 2005-7-28 16:27:09
你的服务器设置有问题.. 我以前做了一个应用上传至买的WEB空间.结果就这样.后来要他们技术人员改,说是改了内存限制就OK了..用了二年了,一直没问题.
PPLUNCLE(人最可怕的是没有了方向) 于 2005-7-28 16:42:52
内存限制怎么回事,楼上的兄弟能说清楚点么?

PPLUNCLE(人最可怕的是没有了方向) 于 2005-7-28 17:10:43
up
lulei(特呆) 于 2005-7-28 17:26:19
我怎么没遇到这样的问题啊!!!
ksn520(泡菜.Net) 于 2005-7-28 17:30:47
session是不是真的有问题啊
sp1234(就要离开兰州了) 于 2005-7-28 18:03:58
state Service方式还“丢”session,要么是你改的不是服务器上应用程序的配置,要么就是你自己的程序总是清除session。一年半前,我曾经见过个程序在页面传递参数用session,例如sesison["parameterName"],然后接收有时清除(remove)session,甚至有个页面竟然把session清空。一个把全局变量当作胡乱占用和修改、清除的程序员技术再好也是危险的,因为它不能与别人好好地合作。
sp1234(就要离开兰州了) 于 2005-7-28 18:07:34
把session存储在装台服务器上,不仅不怕asp.net进程重启和“内存限制”,就算服务器经常突然断电,重起之后依然保持着客户端会话sesison的值。完全可靠!
sp1234(就要离开兰州了) 于 2005-7-28 18:29:26
如果要在页面之间用session传递参数,应该随机生成keyName,然后用session[keyName]保存变量,再将keyName使用url参数传递给接收页面,这样不至于你自己占用的session把别人和系统的session“冲掉”。

当然不用session,用只保持10秒钟的cache传递临时参数才是正解。

长期保存、整个会话期间各页面公共的session参数越少越好,例如少于5个,并且每增加一个就要让所有程序员清楚地知道并且知道要好好维护。

session是工作在你的应用程序进程中的。asp.net进程、iis往往会在20分钟之后重启相关的应用程序,缓冲池满了(例如100个之后)也会重启,各种进程保护措施都会随时重新启动,因此InProc方式丢失session是很正常的事。csdn上明确告诉了这种模式只能保存“易失的、暂时的”变量,这是cache没有之前的一种解决方案。而长期保持的数据就要保存在外部数据源中。状态服务器就是一种进程外的数据源。
ChengKing(bantamweight) 于 2005-7-28 18:32:37
Session失效
引用:
Session失效

1.具体是session变量定以后使用response.redirect()或者客户端发出请求的页面,在这个页面中 session变量会失效,无法取出它的值
2.使用server.transfer(),在新的转向页面中却可以取到session变量的值,但一旦在这个新的页面中点击链接,也就是从新从客户端发出请求的话,在响应的页面中session变量就会失效

3.这个是不管你使用框架集文件还是用户控件,只要是在响应客户端请求生成的页面中,session变量都会失效
wb000wb(我本将心向明月,奈何明月照沟渠。) 于 2005-7-28 19:34:16
建议楼用 cookie 吧,
我的系统最开始也用session,但经常session丢失,
最后忍不可忍了,全部改成cookie方式,问题就得到了根本的解决。
PPLUNCLE(人最可怕的是没有了方向) 于 2005-7-28 21:39:09
session清空,我也没用过session.abandon之类的
我顶多是释放单独的一个session
PPLUNCLE(人最可怕的是没有了方向) 于 2005-8-1 8:36:00
up
cndsn(磐石) 于 2005-10-18 10:54:00
顶!
请问.NET中的SESSION该怎么设置超时时间?
楼主zjkun15(古道西风)2003-10-27 11:01:03 在 .NET技术 / C# 提问
默认的该是20分钟吧
而我的怎么不到2分钟session就丢啦
怎么回事啊? 问题点数:0、回复次数:12Top
[b]1 楼zhouxiaochenchina()回复于 2003-10-27 12:25:25 得分 0 [/b]
在globle文件里面的sessionstart里面
session.timeout=60;Top
[b]2 楼larrybest(拉哩梖斯特)回复于 2003-10-27 12:28:11 得分 0 [/b]
在globle文件里面的sessionstart里面
session.timeout=60;
绝对没错!!!Top
[b]3 楼qiuji(忆秋季)回复于 2003-10-27 12:37:33 得分 0 [/b]
修改Web.Config文件:
<!-- 会话状态设置
默认情况下,ASP.NET 使用 Cookie 来标识哪些请求属于特定的会话。
如果 Cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 Cookie,请设置 sessionState cookieless="true"。
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
cookieless="false"
timeout="20"
/>

修改timeout的值,默认20分钟。Top
[b]4 楼acewang(龍芯*Inside!)回复于 2003-10-27 12:38:16 得分 0 [/b]
调试时候的Session不能为准Top
[b]5 楼qiuji(忆秋季)回复于 2003-10-27 12:38:54 得分 0 [/b]
>>>>而我的怎么不到2分钟session就丢啦
怎么回事啊?

是不是你在运行的过程中重新编译了程序,或者修改了配置文件?
如果是,那session肯定丢失的。Top
[b]6 楼eliphe(未来)回复于 2003-10-27 12:44:35 得分 0 [/b]
在globle文件里面的sessionstart里面
session.timeout=60;
绝对没错!!!
Top
[b]7 楼rgbcn(奔向.net)回复于 2003-10-27 12:56:56 得分 0 [/b]
ASP.NET SESSION的使用及原理 http://www.tongyi.net/article/20010508/200105081639.shtml href="http://topic.csdn.net/t/20031027/11/2398193.html#" target=_blank>Top
[b]8 楼rgbcn(奔向.net)回复于 2003-10-27 13:00:34 得分 0 [/b]
session很象临时COOKIE,只是信息保存在服务器上。
(客户机上保存的是SessionID)所以有很多的原因
来解释你的session变量为什么会消失。
使用者的浏览器不接受cookie。session依赖于cookie
才能跟踪用户。
session在一段时间后过期了。通常是20分钟后失效。
如果你希望更改它, 你可以使用 Microsoft
Management Console(Web directory -> Properties
-> Virtual directory -> Application settings ->
Configuration -> App Options -> Session timeout)
这可以改变在那个web上使用的所有session的超时时间。
你也可以在ASP脚本中设定。这么写:
Session.Timeout=60 ' 设定超时时间为60分钟 。

Top
[b]9 楼larrybest(拉哩梖斯特)回复于 2003-10-29 16:06:05 得分 0 [/b]
揭帖Top
[b]10 楼LighBlade(菜鸟加加油!!!)回复于 2003-10-29 16:29:08 得分 0 [/b]
上面几位大哥已经说的很清楚了,还有没有可能是页面重载了?Top
[b]11 楼zkjbeyond(jigi)回复于 2003-10-29 16:43:28 得分 0 [/b]
哦!学习Top
[b]12 楼atlove(美女程序员)(*****)回复于 2003-10-29 17:28:29 得分 0 [/b]
8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: