【发布时间】:2012-05-30 20:11:20
【问题描述】:
设置:
我有一个带有按钮的登录页面。当用户单击按钮时,会发生回发。在按钮的单击处理程序中,我设置了几个会话变量。然后我将用户重定向到另一个页面。
问题:
当其他页面加载时,SessionID 是相同的(同一个会话仍然存在),但是所有会话变量都消失了。我已经在谷歌上广泛搜索了这个问题,尝试了所有不同的解决方案(而且有很多),但没有一个对我有用。
我试过了:
Response.Redirect("NewPage.aspx", false);
我还尝试添加一个元刷新标签(动态),它可以避开与使用 Response.Redirect(...) 相关的任何潜在问题。
<meta http-equiv="refresh" content="0;URL=NewPage.aspx" />
在这两种情况下,重定向都会成功,但会话变量不再存在。我已经广泛检查了所有 IIS 设置,分析了浏览器和服务器之间交换的数据,但都无济于事。
另外,在同一个项目上工作的两个同事(使用相同配置的开发机器)没有这个问题!
问题:
对于这个问题是否有合理的解释,或者我是否以某种方式侮辱或冒犯了我的开发 PC,它现在是否正在报复我?
【问题讨论】:
-
这就是为什么我们必须尊重我们的电脑:)。您使用什么会话类型?数据库或inproc。如果有任何情况下重定向后您的页面有错误并再次更改此会话?您是否尝试使用第二个参数 true 进行重定向?
-
@Aristos 会话类型为 inproc。我尝试将第二个参数设置为 true,但这并没有改变任何事情。
-
您是否运行过病毒扫描程序?如果它触及 Web.Config 之类的任何内容,它将自动重新启动应用程序,但我想这会创建一个新的 sessionID
-
@KevinMain 我已禁用 Symantec Endpoint Protection 但这并没有解决问题。
-
您可以尝试将它们放在数据库中以检查是否是问题所在。您还可以在页面卸载时设置断点,以查看重定向之前页面退出时是否存在会话变量
标签: asp.net html redirect response.redirect