Stange问​​题与会话

时间:2011-01-20 09:12:02

标签: c# asp.net session session-timeout

我的会话状态发生了一些奇怪的事情。 我们的ASP.NET C#应用程序的会话超时为10分钟,但在页面之间重定向时似乎失去了会话状态。

因此,我们设置了会话值,并重定向到下一步,

        Session["temp"] = "somevalue";
        Response.Redirect("page2.aspx");

在第2页的顶部,我们检查会话值,如果不存在,则重定向回到开头(下面的代码是Page_Load上的第一个代码):

        if (Session["temp"] == null)
        {
            Response.Redirect("start.aspx");
        }

问题是它继续进行此重定向,即使会话不应该超时。

我已经检查了配置文件,并且它有一个机器密钥,因为我被告知如果它不存在,这有时会导致问题。

还有其他可能导致我们失去会话的东西吗?

3 个答案:

答案 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" />