session - 进程内是经典 ASP 存储 session 状态的唯一方式吗?

标签 session asp-classic

我知道这是一个简单的问题,但我似乎无法将其从 Google 噪音中拖出来。我知道 .NET 可以使用 session 状态服务或 SQL 数据库来支持其 session 状态,但我不知道 ASP 是否提供任何进程外选项来存储它。是否有任何问题,或者当负载平衡服务器脱机时我是否会丢失 ASP 应用程序上的 session 变量?

最佳答案

是的,仅在内存中

来自 MSDN Full Article

ASP实现

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

Visual Basic 6 COM Session 对象的主要目的是提供对 Microsoft® Internet Information Server 内部对象的访问。 Visual Basic 6.0 COM Session 对象使用SessionUtility 程序集的mySession 类来保存 session 状态,并使用SessionUtility 的SessionPersistence 类来加载和保存与SQL Server 的 session 数据。 mySession 和 SessionPersistence 类使用 regasm.exe 实用程序公开为 COM 对象。 regasm.exe 实用程序可以注册并创建类型库,供 COM 客户端使用 Framework 类。

session 状态信息在对象构造期间重新加载。构造函数(class_initialize)将首先从Application对象中检索 session cookie、 session 超时(SessionTimeOut)和数据库连接字符串(SessionDSN),并创建类mySession的实例来保存 session 数据。然后构造函数将尝试使用给定的 cookie 从 SQL Server 重新加载 session 数据。如果SQL Server没有 session 信息,或者 session 已过期,则会发出新的cookie。如果 SQL Sever 返回 session 状态数据,则 session 状态将存储在 mySession 对象中。

关于session - 进程内是经典 ASP 存储 session 状态的唯一方式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1110812/

相关文章:

linux - Crowd 和 sonaqube 无法正常工作

asp.net - SessionState 过期行为

jQuery .autocomplete 不过滤

asp.net - ASP3 和 ASP.NET session 共享

php - Laravel 如何取消设置 session 闪存数据?

javascript - 每个请求使用不同的 cookie 域进行快速 session ?

sql-server - 经典 ASP - SQL Server 不存在或访问被拒绝

javascript - 找出 JS-ASP 中是否存在 URL 参数

c# - SystemEvents.SessionSwitch导致我的Windows窗体应用程序卡住

asp-classic - 如何显示 100x75 的图像,然后单击以原始尺寸显示它们。 ASP经典