会话/Cookie 未设置(发布、重定向)

Session/Cookies not getting set (Post, Redirect)

我在经典 ASP 中的 Session 和 Cookies 遇到了一个大问题。

我有"a.asp",我在其中设置了 Session("step") ="1"。这有效,当我在我做 <%=Session("step")%> 的地方调用我的"test.asp"时,我得到"1"。

然后我将"a.asp"上的表单提交到"process.asp",在此我根据提交的表单值设置其他会话变量。最后我重定向到"b.asp"。

在"b.asp"上,我检查是否 Session("step") ="1",如果它是"1",则将其设置为"2",否则重定向到"a.asp"。我在页面上写了 Session("step"),它说"2",但是当我调用"test.asp"时,它说"1"。

似乎页面本身获得了正确的值,但重新加载或任何其他页面忽略了会话/cookie值的变化。

对 Cookies (Response.Cookies("step")/Request.Cookies("step")) 进行了同样的尝试,得到了相同的结果。

页面都在同一个文件夹中,IIS 上只有 1 个工作线程。

只是无法弄清楚为什么没有设置会话和 cookie。任何建议表示赞赏!


(似乎无法发表评论,但需要澄清一下。将酌情编辑/删除此答案。无论如何....)

可能是缓存问题:

  • 您是否尝试过 CTRL F5 以确保您的浏览器正在重新加载。
  • 在其他浏览器中尝试,我发现 Firefox 和 Chrome 有时都会忽略强制缓存刷新,或者在"私人"模式下尝试。
  • 您的主机是否有负载平衡器或缓存系统?向 test.asp 的每个请求添加一个随机查询字符串以确保。
  • 您可以强制不缓存,但某些浏览器、ISP 和主机仍然会忽略它...

.

1
2
3
4
Response.Expires = 0
Response.AddHeader"pragma","no-cache"
Response.AddHeader"cache-control","private"
Response.CacheControl ="no-cache"

抱歉,如果您尝试了所有这些,宁愿快速发表评论!