【问题标题】:ASP.NET Session ExpirationASP.NET 会话过期
【发布时间】:2010-04-17 04:45:24
【问题描述】:

我有一个 ASP.NET Web 应用程序,无论出于何种原因,当它部署在任何 IIS 服务器上时,其行为都会像缓存的页面一样并且它根本不会回发到服务器。

例如,导航到登录页面,输入凭据,单击登录按钮,然后返回您进入的登录页面,并清除表单字段。信息未提交回服务器。回发未执行。浏览器似乎只是从缓存中恢复原始页面。

我发现这个article 说我需要在 ASP.NET 会话状态中放置一些东西才能使会话保持有效。

当用户连接到 ASP.NET 应用程序,一个唯一的会话 ID 将 隶属于用户。如果 但是,会话中没有任何内容, 不会向浏览器发送任何 cookie。 这意味着用户将获得一个 下一次新的 url 时新的会话 ID 已打开或页面已刷新。如果 在会话中放置了一些东西 (HttpContext.Current.Session["Hello] = "hello") 但是,ASP.NET 会发出一个 名为 ASP.NET_SessionId 的 cookie。这个 cookie 包含用户的会话 ID 并且 cookie 将在最后过期 会话(当你关闭你的 浏览器)。

我会尝试那篇文章的建议,因为我没有在会话中存储任何内容。

我还在页面中添加了过期标题:

Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1))
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.Cache.SetNoStore()

并在 html 中放置一些元标记:

<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />  

关于此行为的原因可能是什么其他想法?

【问题讨论】:

  • 您能发布一些执行实际处理的 aspx 和代码隐藏代码吗?

标签: asp.net


【解决方案1】:

问题与 IIS 有关。

Web 应用程序的Directory Security 设置为在匿名访问下使用本地用户帐户和专门为该应用程序创建的应用程序池运行。

事实证明,Integrated Windows Authentication Enable anonymous access 必须两者都被检查,否则你会得到这种奇怪的行为。

FWIW,ASP.NET Web 应用程序在经典 ASP 站点下的 FRAMESET/FRAME 中运行,并且该问题仅在从本地网络访问该站点时出现。它在外部工作得很好。它在第一次访问时也在本地网络上运行,然后需要清除会话 cookie 才能再次运行。

【讨论】:

    【解决方案2】:

    这听起来不像是会话状态问题。听起来您的 Sub Page_Load 有问题

    【讨论】:

      【解决方案3】:

      这只是登录页面吗?如果您在多个 IIS 服务器上尝试过此操作,您的页面中的某些内容似乎已关闭。 IIS 的标准安装和带有按钮的简单 ASPX 页面将导致回发,而无需执行任何操作。如果您没有看到,那么它一定是该页面上的某些内容。尝试创建一个只有标签和按钮的非常简单的页面,并验证您可以看到回帖以及 page_load(如 RichO 所说)是否正常工作。

      【讨论】:

        【解决方案4】:

        您使用的是哪种服务器配置?这是一个漫长的过程,但会话是特定于服务器的:如果您有多个 Web 服务器,则后续页面加载可能会(正确地)表现得好像从未设置过会话一样。

        确保您在浏览器中启用了 cookie。会话存储需要 cookie。

        如果这发生在您的开发盒上,请在您的 page_load(假设您没有使用 MVC)或您的 POST 控制器操作中设置一个断点,以查看服务器端实际发生的情况。

        另外,请尝试通过 HTTP 嗅探器(如 Fiddler)来查看此信息,以查看网络上发生了什么。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-01-14
          • 2012-01-19
          • 2012-06-25
          • 2016-11-08
          • 2016-10-03
          • 1970-01-01
          相关资源
          最近更新 更多