手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

诡异的【session丢失】和无语的【<img src="">标签】

首页 > Misc >

以下发生的内容,本人没有遇到过,但既然有相应的例子,我想,或许还是会有人遇到同样的问题吧?
记录一下,如果有类似的问题,也许就是解决方法。解决方法不在原文中,是在回复中的。我也会一并贴上来
原文如下:

http://www.cnblogs.com/kyneblog/archive/2009/06/11/1500999.html
  1. 今天算是长见识了,项目发布到服务器上面了,但是客户在使用的时候发现,只要进入新增页面和修改页面。再进行操作就会自动跳转到登陆页面(我设置了 session保存用户登陆信息),而别的页面就不会出现这个问题。从下午开始找个问题,开始以为不知道只有这两个页面有问题,以为全部都是这样的问题,是IIS的设置问题。我将session的超时时间设置了3个小时,发现还是会跳转到登陆页面。也在web.config文件里面设置了超时时间。但是效果还是一样的。自己测试了一下午,发现只有新增页面和修改页面会出现这样的问题(本机测试没问题/测试服务器上测试也没问题)。经过几次实验,发现确实只有这两个页面会有问题,那就可以断定:不是IIS设置问题,也不是web.config的问题。本地调试也不出现这样的情况,没办法,只能等客户下班之后,没人用了才到正式服务器上去慢慢的调试,最后想个笨办法,将其中一个页面的.cs文件里面的代码一句一句的删掉,可没想到我都将cs文件里面的代码全部删除了,还是会出现这样的情况,我当时就纳闷了。不是事件的问题,难道是HTML页面出了问题???  
  2.   
  3. 既然耐着性子删了cs文件的代码。我就继续删!将aspx页面里面的HTML代码和JS代码也一个一个的删掉,一个一个控件删掉测试,从下午上班一直测试到晚上11点,眼睛都看花了,终于,在我将aspx页面的其中几个控件删除之后发现问题了!页面不跳转了!这下来劲了,肯定是这几个控件的原因,于是乎,我就一个一个控件还原回去,不跳转!继续还原!!当我还原到<img src="" >这个控件的时候测试,发现问题了!只要我一加上<img src="">这个标签!页面就跳转到登陆页面了。问题肯定出在这了!但是我又想不通了,为什么就这个HTML标签一加上就会出问题,这应该不关 session什么事啊,怎么会加上这个标签页面就直接跳转了呢?  
  4.   
  5.  在网上找了下资料,没找到相关的资料,后来试着将img 标签的src=""加上图片,src="imges/001.jpg" 再测试,发现页面不跳转了!!原来问题出现在这里!  
  6.   
  7. "" 为空的情况下,可能导致session丢失!跟经理说了下这个情况,他也很惊奇还没见过一个HTML标签会导致session丢失的情况,因为在本地和测试服务器上测试的时候都没这样的情况,后来猜测了下,可能是IIS的问题,可能是IIS解析的时候解析到src=""这个地方解析不了,导致程序出问题。但这只是个人猜测,正式服务器上我也没权力当时去打补丁,一个大公司的正式服务器,我要打补丁去了,那他们别的网站和系统不全当机了?所以就只要想了个办法,将src=""里面加上图片,幸好这个img标签是隐藏起来的,加了也不影响界面。呵呵。。。  
  8.   
  9. 最让人郁闷的是我测试的时候是用Symantec pcAnywhere这个软件远程连接到的正式服务器上。反应慢得可以,简直比电脑没装显卡驱动还慢...唉,不过累也累了,以后碰到这样的情况就有经验了。  
  10.   
  11. 我不知道网上有没有人碰到过跟我一样的情况;如果碰到了,希望能给你带来点灵感。哇哈哈。。。   

原文并没有解决这个问题,或者说并没有了解到问题出在哪里,虽然是用了一种很恶心的方法解决了它,但并没有发现问题的本质,而本质则由回复发现了,请看第51楼:

XML/HTML代码
  1. 我给楼主分析下  
  2.   
  3. 先说几点结论:  
  4. 1、并不是所有浏览器都会出现这种情况(IE上会出现)。  
  5. 2、要满足特定的条件才会出现这种情况(比如index/default跳转到login.aspx)。  
  6.   
  7. 再说根源:  
  8.   
  9. 根源:在于在IE下当image 标签的src为空时或图片不存在,会请求图片所在目录或根目录。而刚好index/default又跳转到login,而请求login时会清空session.  
  10.   
  11.   
  12. (上述index/default login 为假想,仅供说明用,据实际情况改变也改变)  

75楼说:

XML/HTML代码
  1. 帮你测试过,当<img src="" />时,加载或回调该页面的时候会直接调用该页面所属的目录下的Default.aspx页面  
  2.   
  3. 当目录下没有Default.aspx页面的时候可能会直接导致Session的丢失  

78楼认为:

XML/HTML代码
  1. 我曾经遇到因为<img src="">的情况下,服务器会加载两次页面,后来在网上查到信息关于img 标签中的src为空时,服务器会重新加载页面,这个img标签有时很古怪  

87楼也有同样问题:

XML/HTML代码
  1. 昨天也在為phpbb後臺增加功能時也遇到了類似的問題  
  2. 當src或href屬性為空時,IE和其他瀏覽器表現不一致  
  3. http://soido.org/blog/649  

这里还有一篇针对本文内容的测试:
http://www.cnblogs.com/yjmyzz/archive/2009/06/11/1501654.html
可以看看哦




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: session, img

« 上一篇 | 下一篇 »

只显示10条记录相关文章

IE中iframe跨域丢失Session问题(续 p3p) (浏览: 24191, 评论: 0)
彻底杜绝PHP的session cookie错误 (浏览: 14050, 评论: 0)

发表评论

评论内容 (必填):