【问题标题】:How to mantain session in classic asp sharing it with .net?如何在经典 asp 中保持会话与 .net 共享?
【发布时间】:2011-09-08 03:04:31
【问题描述】:

我们正在开发一个引入新的 asp.net 页面的 asp 经典应用程序。 会话变量通过 login.asp 共享,一切正常... 我们现在面临的问题是 asp 经典会话到期,同时用户正在导航 .net 页面并尝试再次进入 asp 页面...... asp 中的会话已过期,因为用户已经浏览了超过20 分钟的 aspx 页面。

提前致谢 阿里尔·吉梅内斯

【问题讨论】:

  • 您在哪个服务器平台下进行开发?我似乎记得有人宣布 IIS7.x 中有一个选项可以在经典 ASP 和 ASP.Net 之间共享会话状态。但我找不到支持的证据。

标签: asp.net session asp-classic


【解决方案1】:

当用户在 ASPX 页面中浏览时,您可以通过以下方式保持 Classic ASP 会话处于活动状态:

  1. 在加载 ASP 页面的 ASPX 页面中添加隐藏 iframe

    'aspx 页面 ....

  2. 每 10 分钟从 ASPX 页面使用 AJAX 帖子到 ASP 页面以保持 ASP 会话处于活动状态

【讨论】:

    【解决方案2】:

    我认为你会发现有趣的:

    http://msdn.microsoft.com/en-us/library/aa479313.aspx

    更新

    我认为这是关键:

    "本机 ASP 会话只能将会话数据存储在内存中。为了将会话数据存储到 SQL Server,编写了一个自定义 Microsoft® Visual Basic® 6.0 COM 对象来管理会话状态,而不是使用本机会话对象。此 COM 对象将在每个 Web 请求开始时实例化,并从 SQL Server 重新加载会话数据。当 ASP 脚本完成时,此对象将被终止,会话状态将被持久化回 SQL Server。"

    你也从 db 中检索 asp 会话吗?

    【讨论】:

    • 感谢我们正在实施的共享会话变量的解决方案是按照这些模式构建的并且运行良好,真正的问题是在 asp 页面中导航时会话松散
    【解决方案3】:

    我可以想到两种解决方法:

    1. 将会话超时设置增加到 20 分钟以上。

    2. .aspx 导航的常用页面之间添加重定向页面。
      这将重定向到一个 asp 页面,然后到正确的目的地,确保会话对象没有超时。

    【讨论】:

    • 或者,3. 添加一个脚本项项,该项项调用 ASP 会话的心跳页面,如果您正在使用这些,则将其构建到您的母版页中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 2014-10-14
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多