[抢分] Session 突然丢失的问题 Session 突然变成 null 拉 我并没有清除和删除会话!! 我想问一下 有什么原因 会使它突然丢失? 抢分拉 说出一个不重复的原因 10 分不够再加!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Session 过期..应用程序重置 有时候杀毒软件也会将session给清除掉的 由于我每次 打开这个页面都判断Session 是否为空 一为空就跳转页面我对这个页面操作拉二次就为空拉 急哦 !~~~~~~~` 重起IIS 这个更不可能!!!! web.config 文件<sessionState mode="StateServer".....确保 ASP.NET 状态服务正在将用于存储会话状态信息的远程服务器上运行。该服务与 ASP.NET 一起安装,其默认位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version\aspnet_state.exe。 Session值是有时间限制的,不会永远存在的 模糊记得msdn上有一片这样的文章,楼主去找下 还是说一说 具体操作 请大家 分析分析是个文件管理系统 登陆打开没问题 我就对文件重命名拉一 下然后 刷新页面 重新获得文件目录资源中间也 经过验证是否Session 存在 也通过拉 !!!就是再次请求打开这个文件下的子目录 Session 就突然消失拉 !!!大家分析一下 ...只要你对站点做了更改 Session 都会丢的 四:session变量“丢失”的问题 谈到了那么多的概念,终于可以说道实质性的问题了,session对象是web应用程序中最重要的对像之一,正是它的存在,使得我们可以在跨网页间传送数据,分辨不同用户成为可能。我们只要将变量制定给session即可实现。这一过程即session("temp")=temp即可。但最近不少网友都有这样的疑问,就是当我们在一个网页间设定了一个session变量后,到另一个网页,却消失了。这是什么样的原因呢。 根据上面的概念,我们可以将其原因,和处理办法总结如下。 1:asp网页跨了多个web应用程序: 这个原因就是你的另一个网页可能是另一个web应用程序。以前,一些资料过分的强调了会话变量的单一性,好像一个用户连接到一个web主机之后,只可能创建一个会话变量,这是不对的,分辨会话变量的依据正是我们上面所提到的web应用程序范围,而不是单独根据用户而建立的,你可以试一试下面的一段代码。test.asp<% @ language=vbscript %><%session("temp")="temp"Response.Write session.SessionID 'sessionID用来分辨一个应用程序间的单独客户。%>将test.asp分别拷贝到两个不同的虚拟目录下。你就可以看到,他是两个不同的值了。所以,可能你的网页跨了不同的应用程序。 当然,这种情况对于初学者可能碰到,对于有经验的人可能犯的是这样的错误,即他们本身为一个根目录,但在制定虚拟目录时将其子目录又设为一个虚拟目录了,就如同我们上面提到的第二个表结构一样。这样他同样成为了两个不同的web应用程序。也就不难解释为什么会出错了。 2:可能是启动了多个同一应用程序。 第一种情况很好发现,也容易改正,但这第二种情况就不容易发现,也较难改正。这里我们引入一个另一个的概念。多个同一应用程序共存,(好长呀,关键是微软的概念我忘了,这个是我自己起的。呵呵!),它的意思从这个定义上很好理解,就是对于同一个应用程序。同一时间可以在内存中存在多个。如我们常见的acdsee.exe,你可以通过点击启动多个acdsee.exe。而另外一种则不能,我们就不说它的定义了(如果说的话,就是相同应用程序不共存,呵呵!)在同一时间内,如果已经启动了一个应用程序,则不能再启动相同的应用的应用程序了。如foxmail.exe,当你启动了一个foxmail.exe后,就只可能在内存中存在一个foxmail.如果你在启动,则不会再开一个foxmail窗口了。 而我们的ie属于前者,你可以通过点击ie,启动多个ie应用程序。此时,我们做下面另一个测试。你将上面的代码test.asp放入一个虚拟目录中。然后,你点击ie启动(注意:是通过点击Ie启动,不是按CTRL+N,也不是在一个ie窗口点击文件,重新打开一个窗口)此时,你可以发现,他们虽然是同一个地址,同一个用户,但sessionID还是不同的,当然,你还可以建另一个文件。如test2.asp<% @ language=vbscript %><%response.write session("temp")%>这时,你在另一个ie窗口下,你就会发现session("temp")为空,也就是说,我们刚才明明在test.asp中附了值,而且test2.asp和test.asp在同一虚拟目录下,但session("temp")却丢失了。原来,相对于相同的asp应用程序。不同的ie相对的却是不同的asp应用程序。(有点像绕口令难懂是吧。)不过,我们已经明白了它的起因,相信不难解决他。 这里还要注意的是,我们刚才一再提到的是通过点击Ie,而不是通过按CTRL+N,也不是在一个ie窗口点击文件,重新打开一个窗口,这里要说明的是如果你通过在一个ie窗口打开的窗口,它属于派生窗口,而不是共生窗口,就是说,此时的另一个窗口属于和其上一个窗口是继承关系,属于同一个应用程序范围。 3:连接不当 其实,大部分的网友碰到的问题是通过点击页面中的连接新开窗口而发现session变量丢失的。他同按ctrl+N新开窗口的意义相同。但此时为什么会出问题呢?我们来分析一下它的连接方式。可能为<a href="xx.asp" traget=_blank>click me </a>通过这样点击的连接同ctrl+n 是相同的,应该不会出问题。还有一种连接式通过脚本控制的如window.open "xx.asp","name","toolbar=no"这样的代码,他就可能发生这样的问题。如果通过点击ie开了多个共生窗口(许多网友为了节省时间,他们喜欢开多个窗口。比如我。)。就是他可能在新开的窗口中如果含有相同的name的窗口。则此时,就可能发生连接不当导致session丢失,其实,原因还是通第二种一样。还有一种更极端的方式开新窗口,通过用document.write 在一个脚本中动态写出新的页面,而该页面的url是不存在的,这样就更可能出问题了,应为session正是通过url,http来追踪的。所以如果其页面地址是动态的话。则session就根本无法追踪了。 相信通过以上例子的分析,可能会解释你在应用session中出现的大部分问题。但不是全部(如过你禁用cookie的话,呵呵!)但是,如果你将以上的概念都弄懂,则可以解决你在应用session中出现的所用问题了。 转自:http://www3.ccw.com.cn/club/essence/200103/601.htm,仅供参考 将session改称sqlserver模式即可解决此问题 是不是你关了ie,关了ie后会话结束,session就没了 不是过期session变量“丢失”的问题 上面 scow(scow) 分析的不错就是不知道该怎么改?谁还知道点阿 服务器,配置也是个问题,建议用Forms认证,当服务器压力过重时Session会提前失效的 按照 hdt(倦怠) 的方法,把Session不放在内存中,放在服务器的进程中就好了!启用Asp.net State服务,修改Web.config 链表on后面不能加where条件进行排序么? VS2005中 IList.Add的问题 repeater数据绑定的问题 效果有问题 阿里巴巴的注册步骤的问题 正则表达式高人请进!!! asp.net开发的网站发布后,部分用户反应打不开页面是怎么回事啊? 以分号分隔的字符串,怎么用DataTable显示出来,求高人指点! 初学asp.net,谁能给点帮助! 帮忙把代码从 C# 转换到 VB.net,我快疯了 低手请教,请高手指点入门! 用ASP.NET怎么实现抓取网页的功能呀.
应用程序重置
急哦 !~~~~~~~`
<sessionState mode="StateServer".....
确保 ASP.NET 状态服务正在将用于存储会话状态信息的远程服务器上运行。该服务与 ASP.NET 一起安装,其默认位置为 <驱动器>:\systemroot\Microsoft.NET\Framework\version\aspnet_state.exe。
请大家 分析分析
是个文件管理系统
登陆打开没问题
我就对文件重命名拉一 下然后 刷新页面 重新获得文件目录资源
中间也 经过验证是否Session 存在 也通过拉 !!!
就是再次请求打开这个文件下的子目录 Session 就突然消失拉 !!!
大家分析一下
根据上面的概念,我们可以将其原因,和处理办法总结如下。
1:asp网页跨了多个web应用程序:
这个原因就是你的另一个网页可能是另一个web应用程序。以前,一些资料过分的强调了会话变量的单一性,好像一个用户连接到一个web主机之后,只可能创建一个会话变量,这是不对的,分辨会话变量的依据正是我们上面所提到的web应用程序范围,而不是单独根据用户而建立的,你可以试一试下面的一段代码。
test.asp
<% @ language=vbscript %>
<%
session("temp")="temp"
Response.Write session.SessionID 'sessionID用来分辨一个应用程序间的单独客户。
%>将test.asp分别拷贝到两个不同的虚拟目录下。你就可以看到,他是两个不同的值了。所以,可能你的网页跨了不同的应用程序。
当然,这种情况对于初学者可能碰到,对于有经验的人可能犯的是这样的错误,即他们本身为一个根目录,但在制定虚拟目录时将其子目录又设为一个虚拟目录了,就如同我们上面提到的第二个表结构一样。这样他同样成为了两个不同的web应用程序。也就不难解释为什么会出错了。 2:可能是启动了多个同一应用程序。
第一种情况很好发现,也容易改正,但这第二种情况就不容易发现,也较难改正。这里我们引入一个另一个的概念。多个同一应用程序共存,(好长呀,关键是微软的概念我忘了,这个是我自己起的。呵呵!),它的意思从这个定义上很好理解,就是对于同一个应用程序。同一时间可以在内存中存在多个。如我们常见的acdsee.exe,你可以通过点击启动多个acdsee.exe。而另外一种则不能,我们就不说它的定义了(如果说的话,就是相同应用程序不共存,呵呵!)在同一时间内,如果已经启动了一个应用程序,则不能再启动相同的应用的应用程序了。如foxmail.exe,当你启动了一个foxmail.exe后,就只可能在内存中存在一个foxmail.如果你在启动,则不会再开一个foxmail窗口了。
而我们的ie属于前者,你可以通过点击ie,启动多个ie应用程序。此时,我们做下面另一个测试。你将上面的代码test.asp放入一个虚拟目录中。然后,你点击ie启动(注意:是通过点击Ie启动,不是按CTRL+N,也不是在一个ie窗口点击文件,重新打开一个窗口)此时,你可以发现,他们虽然是同一个地址,同一个用户,但sessionID还是不同的,当然,你还可以建另一个文件。如
test2.asp
<% @ language=vbscript %>
<%
response.write session("temp")
%>
这时,你在另一个ie窗口下,你就会发现session("temp")为空,也就是说,我们刚才明明在test.asp中附了值,而且test2.asp和test.asp在同一虚拟目录下,但session("temp")却丢失了。原来,相对于相同的asp应用程序。不同的ie相对的却是不同的asp应用程序。(有点像绕口令难懂是吧。)不过,我们已经明白了它的起因,相信不难解决他。
这里还要注意的是,我们刚才一再提到的是通过点击Ie,而不是通过按CTRL+N,也不是在一个ie窗口点击文件,重新打开一个窗口,这里要说明的是如果你通过在一个ie窗口打开的窗口,它属于派生窗口,而不是共生窗口,就是说,此时的另一个窗口属于和其上一个窗口是继承关系,属于同一个应用程序范围。
3:连接不当
其实,大部分的网友碰到的问题是通过点击页面中的连接新开窗口而发现session变量丢失的。他同按ctrl+N新开窗口的意义相同。但此时为什么会出问题呢?我们来分析一下它的连接方式。可能为<a href="xx.asp" traget=_blank>click me </a>通过这样点击的连接同ctrl+n 是相同的,应该不会出问题。还有一种连接式通过脚本控制的如window.open "xx.asp","name","toolbar=no"这样的代码,他就可能发生这样的问题。如果通过点击ie开了多个共生窗口(许多网友为了节省时间,他们喜欢开多个窗口。比如我。)。就是他可能在新开的窗口中如果含有相同的name的窗口。则此时,就可能发生连接不当导致session丢失,其实,原因还是通第二种一样。还有一种更极端的方式开新窗口,通过用document.write 在一个脚本中动态写出新的页面,而该页面的url是不存在的,这样就更可能出问题了,应为session正是通过url,http来追踪的。所以如果其页面地址是动态的话。则session就根本无法追踪了。 相信通过以上例子的分析,可能会解释你在应用session中出现的大部分问题。但不是全部(如过你禁用cookie的话,呵呵!)但是,如果你将以上的概念都弄懂,则可以解决你在应用session中出现的所用问题了。 转自:http://www3.ccw.com.cn/club/essence/200103/601.htm,仅供参考
session变量“丢失”的问题
上面 scow(scow) 分析的不错
就是不知道该怎么改?
谁还知道点阿
启用Asp.net State服务,修改Web.config