我的会话状态发生了一些奇怪的事情。 我们的ASP.NET C#应用程序的会话超时为10分钟,但在页面之间重定向时似乎失去了会话状态。
因此,我们设置了会话值,并重定向到下一步,
Session["temp"] = "somevalue";
Response.Redirect("page2.aspx");
在第2页的顶部,我们检查会话值,如果不存在,则重定向回到开头(下面的代码是Page_Load
上的第一个代码):
if (Session["temp"] == null)
{
Response.Redirect("start.aspx");
}
问题是它继续进行此重定向,即使会话不应该超时。
我已经检查了配置文件,并且它有一个机器密钥,因为我被告知如果它不存在,这有时会导致问题。
还有其他可能导致我们失去会话的东西吗?
答案 0 :(得分:1)
根据会话的配置方式,Cookie问题可能会导致会话丢失。可以在http和https之间切换域/切换。
另外,如果您通过移动连接进行连接,那么您的cookie可能会发生各种可怕的事情......
答案 1 :(得分:1)
残疾人Coockies可能会出问题。您还可以使用单个页面创建全新的应用程序(使用默认的web.config而无需任何更改)并对其进行测试。这将告诉您问题是特定于应用程序还是特定于服务器。
答案 2 :(得分:0)
尝试在web.config的下一行添加system.webServer -> modules
部分:
<remove name="Session" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />