当前位置: 首页 > 图文教程 > 网络编程 > ASP > 为你的ASP程序制作一个编译组件(下)

ASP
ASP正则表达式技巧
ASP Access实现网站计数器(访问量)
ASP新闻分页,将一篇过长的文章分页,生成静态页面
一些关于asp 购物车的想法
一个sql查询器,自动画表格填字段
ASP实现文件直接下载的代码
把网页中的(电话,qq等数字)生成图片的ASP程序
asp长文章用分页符来分页显示
Asp函数介紹(37个常用函数)
ASP中的面向对象类
分页实现方法的性能比较
asp ajax跨域提交数据
asp修改文件和文件夹的名字的代码
ASP 多关键词查询实例代码
asp被杀毒软件误删的解决方法
asp 多关键词搜索的简单实现方法
asp 根据IP地址自动判断转向分站的代码
asp dictionary对象的用法
ASP 千万级数据分页的存储过程
ASP隐藏真实文件的下载功能实现代码

为你的ASP程序制作一个编译组件(下)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 203 ::
收藏到网摘: n/a

  使你的类开始工作
既然你已经拥有了一个能够运行的COM组件了,那么现在就是让它参与工作的时候了.让这个组件能在ASP中使用有几步工作要做.第一步,修改框架(framework)中的pageDeclare.asp文件来用一个object置标来引用这个刚刚编译成功的组件(列表D).

Listing D
<%@ LANGUAGE="VBScript" %>
<object runat="server" progid="DBUtil.DBConnection" id="dbConnect"></object>
<%
option explicit

'<!--#include virtual="/includes/classes/dbAccess.asp"-->

dim gExpirePage
dim gPageTitle
dim gHeaderInclude
dim gBodyTagInclude

'dim dbConnect

'set dbConnect = new DBConnection

'Set defaults
gExpirePage = true
gPageTitle = ""
gHeaderInclude = ""
gBodyTagInclude = ""
%>

object置标是伟大的因为不象VBScript对象,dll在被使用以前不会被初始化.这样做以后,如果你的页面使用框架但并不需要dbConnect对象,它就不会引入任何多余的动作.注意object置标指明了对象应该在服务器上运行.这是必须的以便这个置标不会跑到浏览器那端去然后企图在客户端上创建这个对象.

要使这个组件工作的最后一件事情是在你计算机的注册表里注册它.最好的方法是使用Microsoft Transaction Server (MTS),它实际上就是Windows 2000机器上的COM+.打开控制面板然后选择管理工具.在管理工具中,双击组件服务图标.用左边的面板浏览"组件服务|计算机|我的电脑|COM+应用程序".单击"COM+应用程序图标"然后在上面右键单击.从弹出菜单中选择"新建|应用程序".随着提示创建一个空的应用程序.然后,用任何你喜欢的名字命名这个应用程序并确保选择了"服务器应用程序(Server Application)"这一项.如果我们的组件需要访问ASP对象,比如Application和Session,那么这个选项就应该选择"库应用程序(Library Application)".但是对于数据库访问来说,"服务器应用程序"是个更好的选项.

对于"应用程序标志(Application Identity)"一项,只要你还在一个开发用的机器上并用是用IIS登录的话,你可以选择"交互用户(Interactive User)".如果这是一个没有人登录的服务器,你就需要申明一个用户帐号.所以你需要创建一个应用程序和组件能够使用的安全认证帐号.这对于一个管理了一个或多个域的服务器来说将是复杂的配置过程,因此如果你能对这个测试过程使用"交互用户"选项是最好不过的了.

现在,你应该能够在左边的面板里浏览你新的程序并单击你应用程序的组件文件夹了.要注册你的组件,只需要打开一个Explorer窗口然后将dll拖动到组件服务窗口右边的面板里就行了.一个名字为DBUtil.DBConnection的图标就会显现出来,如图E所示.


图E

只要你去掉"set dbConnect=nothing"这一行musiclist.asp文件就准备运行了.这个调用已经失效,因为此时对象已经由MTS管理.一旦你删除了那一行,musiclist.asp就会象以前那样显示出来.

总结
我希望本文向你展示了将一个VBScript对象转换成一个Visual Basic编译过的dll并将它用在你的ASP页面里是多么的容易.如果我们从页面里将"set dbConnect = nothing"这句删除,那么从VBScript对象转换成dll就只需要修改pageDeclare.asp文件.

编译后的组件还缺乏适当的错误处理代码.既然它现在已经是一个Visual Basic对象了,那么你就可以使用on error goto的方式来捕捉函数中发生的任何错误.一旦捕捉到了一个错误,你可以要么报告这个错误,要么将它记到事件记录中去.在将来的几节中,我们将探索如何编写一个session对象并用常规的表达式来验证数据.