这篇文章主要介绍了解决ASP会话丢失的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
也许很多ASP开发者都会遇到这样的情况:在会话期间(会话)无故丢失sessio n。换而言之,丢失了SessionID,同样会话级的变量也会丢失。
很多会话丢失的原因是因为错误的程序或者是错误的虚拟目录结构。
SessionID的改变有下面几个原因。
原因一:
网景的浏览器会认为“/App/user.asp"跟“/App/user.asp"是两个不同的程序。它会自动地开始一个新的会话期(新会话),所以,才你的网站上一定要统一字母的大小写。
原因二:
另外一个是原因是会话。超时的值。
超时这个属性是用来设置会话的超时时间的,一分钟为单位。假如一个用户,在一个超时的时间内没有刷新或者请求页面,那么会话就会结束(se ssion结束)。当你再次请求页面的时候,一个新的会话有会开始。
确信超时的值,是分钟的。
格式:会话。超时(=nMinutes]
原因三:
假如用户把他们的浏览器的饼干关了,当然会话就不能保持。因为会话的保持是要靠饼干的。
要保持会话的状态,浏览器就必须支持cookie,而且在打开的状态。你当然可以用其他的方法
原因四:
常犯的错误就是,建立了错误的目录结构。像下面的目录结构:
根放了全球。asa
\ virtual_root没有全球性的。asa
\ another_virtual_root没有全球性的。asa
调用两个虚拟的根页面,就会执行相同的global.asa(根上的那个)
另外的一个目录结构:
根没有全球性的。asa
\虚拟放了全球。asa
\ another_virtual_root另外一个全球性的。asa
每一个不同目录下的global.asa都会各自执行,当然执行的代码就不同了。不过如果里面的代码一样,就令当别说。)
所以你在请求不同目录下页面,将会导致不同的全球化。asa被执行。不同的变量被调用,不同的会话id被建立....之前的有用的信息都被破坏了。
下面是详细的解释:
当你先浏览子虚拟程序上的页面(儿童虚拟应用程序),然后再去浏览子虚拟程序的上一级的父虚拟程序(父虚拟根)的页面。那些变量就会丢失,破坏。看下面的表格:
请求子程序1丢失子程序2丢失
先请求,,,,,,,,,,,,,,根,不会,,不会
只在子程序1之前请求,,根,,不会,,会
只在子程序2之前请求,,根,,会,,,,不会
最后请求,,,,,,,,,,,,根,会,,,,会
感谢你能够认真阅读完这篇文章,希望小编分享解决ASP会话丢失的问题内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!