【问题标题】:how do we create a new session on the page if it has timed out如果页面超时,我们如何在页面上创建新会话
【发布时间】:2011-07-15 23:27:54
【问题描述】:

如果超时,有没有办法创建一个新会话?在 移动应用开发 中使用 asp.net?

收到此错误:

the page requires session state that is no longer available. either the session has expired, the client did not send a valid session cookie, or the session state history size is too small. try increasing the history size or session expiry limit

这就是我的 web.config 中的内容:

  <sessionState cookieless="UseCookies" cookieName="Mobile_Session" regenerateExpiredSessionId="true">
    </sessionState>

【问题讨论】:

  • 从技术上讲,一旦超时,服务器会自动为同一个用户生成一个新的会话,因为它把用户当作一个新的访问者。您可以通过将会话选项设置为使用“无 cookie 会话”来测试这一点,并查看 URL 如何随时间变化。我猜您正在考虑保留会话或恢复会话,下面有一些很好的答案。
  • 我稍微整理了一下我的答案。如果您仍然遇到问题,可能需要一些上下文。希望对您有所帮助!

标签: asp.net mobile-website mobile-phones


【解决方案1】:

会话处理在服务器上完成,因此如果客户端在当前会话超时后发送请求,ASP.Net 应用程序将自动创建一个新会话。

据我所知,一旦会话超时,就无法重新启动它或从中恢复信息。如果您想阻止会话结束,那么您可以定期发送一个小的 AJAX 请求来阻止它(例如,如果您的会话在 20 分钟后结束,则每 15 分钟发送一次请求)。此请求将强制会话保持活动状态。

【讨论】:

  • 这同样适用于使用 asp.net 的移动应用程序开发吗?
  • 移动与否并不重要。没有区别。
  • 我个人没有使用过使用 asp.net 的移动应用程序,但移动框架的会话处理与完整框架相同。会话处理的基础(即由服务器控制)对于所有服务器端语言都是相同的,包括 php 和其他非 .Net 平台。
【解决方案2】:

会话一旦过期,就无法恢复。您有多种选择。

  • 增加会话超时 web.config 设置(使其持久 更长)
  • 定期回发到 刷新会话超时(这是 通常在隐藏的 iframe 中完成,因此用户不知道或某种弹出窗口为用户提供选项)
  • 将用户重定向到登录页面或主页并向他们解释他们的会话已过期。将最初请求的 url 保存在新创建的会话中也很有帮助,这样他们就可以选择返回到他们所在的页面。

【讨论】:

  • 这同样适用于使用 asp.net 的移动应用程序开发吗?
  • 是的。所有服务器端功能仍然适用于 ASP.Net,只是前端技术不同,如果您在前端使用 jQuery 或不同的移动框架。
  • 我收到此错误:the page requires session state that is no longer available. either the session has expired, the client did not send a valid session cookie, or the session state history size is too small. try increasing the history size or session expiry limit
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-30
  • 2014-01-15
  • 2012-07-01
  • 2012-09-05
  • 1970-01-01
  • 2014-03-22
相关资源
最近更新 更多