首先,ASP.NET 不是经典 ASP 的更新版本。
ASP.Net 中的会话
在 ASP.NET 中,每个网页都派生自 System.Web.UI.Page 类。 Page 类为会话数据聚合 HttpSession 对象的一个实例。在此示例中,名为 SessionPage 的自定义 Page 类派生自 System.Web.UI.Page 以提供与 Page 类相同的所有功能。与派生页面的唯一区别是默认的 HttpSession 被自定义会话对象覆盖。
经典 ASP 中的会话
本机 ASP 会话只能将会话数据存储在内存中。为了将会话数据存储到 SQL Server,编写了一个自定义 Microsoft® Visual Basic® 6.0 COM 对象来管理会话状态,而不是使用本机会话对象。这个 COM 对象将在每个 Web 请求开始时实例化,并从 SQL Server 重新加载会话数据。当 ASP 脚本完成后,该对象将被终止,会话状态将被持久化回 SQL Server。
实现经典 ASP 到 ASP.Net 之间的迁移
1.
设置演示程序的步骤
创建一个名为 SessionDemoDb 的新数据库。
创建 SessState 表 (osql.exe –E –d SessionDemoDb –i Session.sql)。
创建一个名为 Demo 的新虚拟目录。
关闭 ASP 配置选项卡下的 ASP 会话。
将 web.config、testPage.aspx、Global.asa、testPage.asp 和 GlobalInclude.asp 复制到虚拟目录。
更新 Global.asa 和 web.config 中的 DSN 字符串设置。会话超时设置是可选的。默认值为 20 分钟。
将 SessionUtility.dll 安装到全局程序集缓存 (gacutil /i SessionUtility.dll)。
使用 regasm.exe (regasm.exe SessionUtility.dll /tlb:SessionUtility.tlb) 将 SessionUtility.dll 公开为 COM 对象。
将 SessionManager.dll 复制到本地目录并使用 regsvr32.exe 进行注册(regsvr32 SessionManager.dll)。
授予 IUSR_ 帐户对 SessionMgr.dll 的读取和执行权限。
运行演示程序的步骤
启动 Microsoft® Internet Explorer。
为经典 ASP 加载 testPage.asp。数字“1”应该出现在网页中。
单击 Internet Explorer 上的刷新以重新加载页面。数字应该增加。
将 URL 更改为 ASP.NET 的 testPage.aspx。该数字应不断增加。
可以通过首先启动 testPage.aspx 页面来重复相同的过程。
2.
每当您的应用程序进行跳转时,页面将被重定向到这个新创建的页面,该页面将为用户必不可少的会话变量创建 cookie。然后这些 cookie 将被 ASP.NET 抓取。使用这些 cookie,根据 ASP.NET 浏览器的要求创建新的会话变量。
更多信息:
https://msdn.microsoft.com/en-us/library/aa479313.aspx
http://www.codeproject.com/Articles/30723/Handle-session-variable-problems-between-classic-A