2010-06-29 123 views
0

在PageA.asp我设置会话变量像这样ASP会话变量丢失

Session("affiliate") = "xyz.com" 

当我点击一个链接,去PageB.asp该会话变量将不再存在。

我有其他会话变量,它们持续在页面上。我可以在PageA.asp上响应。写入我的会话varriable,所以我知道它被正确创建。

几个月前我有这个问题。我想清楚了,现在又有一段时间我的修复被覆盖了。现在,我处于全面亏损状态。

在此先感谢。

+0

哪您使用的是IIS版本? – 2010-06-29 21:37:11

回答

0

无论我做了什么,会话变量都会在response.redirects上丢失。我最终使用了一个cookie。

+0

你怎么最终使用cookie? – 2018-02-10 07:24:33

1

您可能在您的站点的其他地方清除变量。

+0

页面A很奇怪,大约有20个会话变量。 在pageB上大约有12个会话变量。 这8个会话变量去哪里? – s15199d 2010-06-29 20:16:05

+0

每个会话变量需要5kb +乘以20是每个浏览器0.5mb。也许你没有足够的内存在你的服务器上,一些变量正在丢失..他们总是一样会丢失?还是会不时变化? – 2010-07-06 14:17:13

0

PageB.asp在同一个域上?跨域会话将无法工作。除非您重置或清除内容,否则相同的域会话不应清除。

你有填充会话的代码吗?

+0

他说其他会话变量正在工作..所以我们猜测它是在同一个域名..但问题被问到,如果不是真的愿意的答案.. – 2010-07-06 14:07:13

0

如果其他会话变量仍然可用在PageB.asp比这个应该工作以及..

,除非

  1. 你已设置为过期快。
  2. 您在pageB.asp的会话变量名称中存在拼写错误。将pageA粘贴到pageB。

没有看到有关从pageA的和页面B会话变量的代码及其挺难猜测..

为关于会话变量的损失您的评论尝试:

<% 
dim i 
For Each i in Session.StaticObjects 
    Response.Write(i & "<br />") 
Next 
%> 

这应列出会话中存储的所有对象

1

还有一个问题是我不久前发现的。 如果你是二〇〇八年至2003年服务器(IIS6-7)然后确保你没有使用任何其他端口,但80

出于某种原因,最新版本的IIS失去对重定向会话中,如果网站设置为使用任何其他的但80.

我向微软提交了错误报告,但到目前为止他们没有告诉他们他们将如何或如何解决这个问题。

0

对于IIS6我们的主要会话杀手是负载平衡器。此修复程序将转换为IIS 7.它处理平衡服务器之间的会话。是的,我们把饼干的东西放在饼干里也是为了处理它。

-1

尝试将“Web Garden”工作进程限制为1。

在这里找到:

“IIS Mananger” - > “应用程序池” - > “属性” - > “性能” 选项卡 - > “的工作进程的最大数量”