在ASP与ASP.NET之间共享对话状态(2)(2)
发布时间:2008-09-02 12:21:00
例程
例程设计为增加并显示一个数字。不管载入了哪个页面,由于数字值保存在SQL Server中并在ASP和ASP.NET间共享,数字将不断增加。
建立例程的步骤
1. 建立一个新数据库SessionDemoDb。
2. 建立新表SessState(osql.exe -E -d SessionDemoDb -i Session.sql)。
3. 建立新虚拟目录Demo。
4. 在ASP配置页中关闭ASP对话。
5. 将web.config、testPage.aspx、Global.asa、testPage.asp和GlobalInclude.asp复制到虚拟目录。
6. 更新Global.asa和web.config中的DSN字符串设置。对话超时设置是可选的,默认为20分钟。
7. 将SessionUtility.dll安装到全局组件缓存(gacutil /i SessionUtility.dll)。
8. 使用regasm.exe把SessionUtility.dll作为COM对象暴露(regasm.exe SessionUtility.dll /tlb:SessionUtility.tlb)。
9. 将SessionManager.dll复制到本地目录并使用regsvr32.exe注册(regsvr32 SessionManager.dll)。
10. 赋予IUSR_<计算机名>帐户读取和运行访问SessionMgr.dll的权限。
运行例程的步骤
1. 打开微软Internet Explorer。
2. 为传统的ASP中载入testPage.asp。数字"1"将出现在Web页中。
3. 点击Internet Explorer的刷新来重新载入该页面。数字将增加。
4. 为ASP.NET改变URL为testPage.aspx。数字仍然增加。
5. 如果使用testPage.aspx开始,过程相同。
在存在的ASP应用程序中插入COM对象
开发ASP应用程序的一个通常的习惯是在每个脚本开始时包含一个文件来共享代码和常量。插入自定义对话对象的最后途径是在公有包含文件中加入示例代码。最后一步简单地使用自定义对话变量名代替了所有到对话对象的引用。
限制/改进
本方案不支持在Session对象中保存了COM对象的ASP应用程序。在这种情况下,为了使用自定义对话对象,需要一个自定义的调度器来串行化/并行化状态。此外,本方案也不支持保存字符串类型数组。做一些附加工作可以实现该特性:使用Visual Basic 6.0的Join函数在保存到对话对象前将数组元素连接成一个字符串,反向操作可以使用Visual Basic 6.0的Split函数将字符串分解为独立的数组元素。在.NET框架组件中,Join和Split方法使String类的成员。
结论
ASP.NET提出了新的编程范例和体系结构,并提供了许多比传统ASP的好处。尽管将ASP移植到ASP.NET的过程不简单,ASP.NET更好的编程模型和更高的性能将使转换过程值得。除了在Session对象中保存COM对象的特例,本文讨论的途径提供了一个简单实现迁移的解决方案。


猜你喜欢
- 多线程适合于多io操作多进程适合于耗cpu(计算)的操作# 多进程编程# 耗cpu的操作,用多进程编程, 对于io操作来说,使用多线程编程i
- 概述分库分表后设计到的第一个问题就是,如何选择路由key,应该如何对key进行路由。路由key应该在每个表中都存在而且唯一。路由策略应尽量保
- (注:在看到大家如此关注JS里头的这几个对象,我试着把原文再修改一下,力求能再详细的阐明个中意义 2007-05-21)在提到上述的概念之前
- 我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作。比方我有下图一系列的txt文件,我该如何把它们写入一个
- 实现如下需求:在PyQt界面上有一个控件,实现其可任意拖动,且鼠标释放时自动对齐到网格。1.控件任意拖动并对齐到网格如下按钮(尺寸100&a
- 1. 范数示例代码:import torcha = torch.full([8], 1)b = a.reshape([2, 4])c = a
- python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能。python中:print(
- 虽然每个图像具有多个通道和多层卷积层。例如彩色图像具有标准的RGB通道来指示红、绿和蓝。但是到目前为止,我们仅展示了单个输入和单个输出通道的
- 本文实例讲述了python实现通过代理服务器访问远程url的方法。分享给大家供大家参考。具体如下:import urllibproxies
- 前言在用Pytorch加载数据集时,看GitHub上的代码经常会用到ImageFolder、DataLoader等一系列方法,而这些方法又是
- python读取Excel表格文件,例如获取这个文件的数据python读取Excel表格文件,需要如下步骤:1、安装Excel读取数据的库-
- 关于代码调试的技巧,我之前写过很多的文章,关注比较早的同学,也应该都有看过。还没看过的同学,欢迎前往查阅:更多Python代码调试技巧其中有
- 语言更新时每一个新增的特性都是从千百万开发者需求里提取过来的,规范采用后能减少程序员的痛苦,带来便捷。我们经常会这么写function ca
- 有一个优秀的库可以使用————demjson示范链接http
- 本文实例讲述了Python操作mysql数据库实现增删查改功能的方法。分享给大家供大家参考,具体如下:#coding=utf-8import
- 你是否曾经想在数据库中存储一个日期而没有时间部分,或者想存储一个时间值希望有更高的精度?在SQL Server 2008的介绍中,微软介绍了
- 先给大家展示效果图,感觉不错,请参考实现代码。具体代码如下所示:#!/usr/bin/env python# -*- coding:utf-
- 首先打击我的就是rpm安装,它告诉我发现了Mysql版本冲突,安装无法继续。我用rpm -q 查询后,想通过rpm -e 来删除系统自带的版
- 今天使用python计算数据相关性,但是发现计算出的表格中间好多省略号,而且也不对齐。这也太难看了。于是在程序里加了三行:pd.set_op
- 本文实例讲述了Python List列表对象内置方法。分享给大家供大家参考,具体如下:前言在上一篇中介绍了Python的序列和String类