在服务器和/或客户端页面重定向之后会话变量丢失

时间:2012-05-24 08:54:29

标签: asp.net html redirect response.redirect

设定:

我有一个带有按钮的登录页面。当用户单击该按钮时,会发生回发。在按钮的单击处理程序中,我设置了几个会话变量。然后我将用户重定向到另一个页面。

问题:

当加载另一个页面时,SessionID是相同的(同一会话仍然存在),但是,所有会话变量都已消失。我已经广泛搜索了所有各种解决方案的问题(并且有很多),但它们都没有为我工作。

我试过了:

Response.Redirect("NewPage.aspx", false);

我还尝试添加一个元刷新标记(动态),它可以解决与使用Response.Redirect(...)相关的任何潜在问题。

<meta http-equiv="refresh" content="0;URL=NewPage.aspx" />

在这两种情况下,重定向都成功,但会话变量不再存在。我已经广泛检查了所有IIS设置,分析了浏览器和服务器之间交换的数据,但都无济于事。

此外,在同一个项目上工作的两位同事(配置相同的开发机器)没有这个问题!

问题:

对于这个问题是否有合理的解释,或者我在某种程度上侮辱或冒犯了我的开发PC,现在是否正在报复我?

1 个答案:

答案 0 :(得分:0)

我记得在异步回发期间调用response.redirect()时发生了这个问题。如果您使用的是UpdatePanel,请尝试将其删除以查看它是否解决了问题。如果这是问题,那么我认为这与旧版Ajax库中的错误有关。由于您没有提及版本信息,我认为这是一个公平的假设。