Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 经典asp站点中的新请求导致会话丢失_Session_Asp Classic - Fatal编程技术网

Session 经典asp站点中的新请求导致会话丢失

Session 经典asp站点中的新请求导致会话丢失,session,asp-classic,Session,Asp Classic,这不容易解释,但我会尽力的 这个问题开始发生在几年前使用经典asp构建的网站上,症状是管理员使用表单登录,然后设置了会话变量,但当他们请求新页面时,会突然提示他们再次登录 这个问题不是特定于任何浏览器的,我已经在Firefox和IE8中重现了这个问题 使用Fiddler,我可以看到服务器突然发送了一个新的Set Cookie头,尽管请求中发送了前一个会话Cookie 从那一刻起,服务器将在两个会话之间随机切换,所有会话似乎都没有过期,它们保留自己的变量,但对于用户来说,这是无用的,因为可能会要求

这不容易解释,但我会尽力的

这个问题开始发生在几年前使用经典asp构建的网站上,症状是管理员使用表单登录,然后设置了会话变量,但当他们请求新页面时,会突然提示他们再次登录

这个问题不是特定于任何浏览器的,我已经在Firefox和IE8中重现了这个问题

使用Fiddler,我可以看到服务器突然发送了一个新的Set Cookie头,尽管请求中发送了前一个会话Cookie

从那一刻起,服务器将在两个会话之间随机切换,所有会话似乎都没有过期,它们保留自己的变量,但对于用户来说,这是无用的,因为可能会要求他登录,然后表单数据将在已登录的会话中处理

我可以试着找出问题所在吗

服务器是与IIS6共享的主机,主机公司不是很友好,但将所有东西转移到其他地方的成本使事情保持原样

谢谢

更多信息: 按照Aaron D的建议显示机器名称。始终显示相同的名称,但我已将应用程序的开始时间存储在global.asa中:

Sub Application_OnStart()
    Application("Start") = now()
End Sub
事实证明,当在测试页面中显示该信息时,它确实会随着检测到的会话的变化而变化。所以有两台服务器(同名),或者它运行了两次应用程序。
可能吗?

我有一些想法,但没有确定的

  • 有些请求是通过HTTPS的,有些是通过HTTP的?Cookie是否设置为仅通过安全连接传输

  • 您的请求是否在子域和主域之间交替?例如,一些请求转到www.foo.com,其他请求转到foo.com?除非您在cookie中设置了域,否则这两个cookie不能共享。这也可能发生在多个子域中

  • 这是一个不太常见的问题,但该公司是否将您的站点托管在多个分发负载的服务器上?您可以通过创建此处指定的页面来说明这一点:
    如果事实证明是这样,那么解决方案是将会话状态模型从“InProc”更改为使用共享资源(如数据库)

  • 您确定它会在会话之间切换您,而不是让您的会话过期吗?可能是您的应用程序正在重新启动(基于您的编辑),这将终止您的会话,但缓存的结果使其看起来仍然有效。您是否可以尝试进行硬刷新和/或使用诸如Fiddler之类的HTTP流量监视程序检查结果?这可能会给你一个更好的线索,让你知道什么样的请求实际上是通过网络进行的


  • 1.不,所有站点都使用http。2.不,我已经检查过了,所有的请求都在使用www。除此之外,有时我只需重新加载一个测试页面就可以重现问题。3.这是一个有趣的检查(也是我最初的猜测之一)。我已经将该信息添加到我的测试页面,但现在它工作正常。但也许他们可以用同样的方式命名两台机器?能用Fiddler追踪到吗?不,Fiddler展示了我所解释的。我可以多次重新加载测试页面,然后服务器突然发送一个新的set cookie头。