[导读]虽然ASP.NET代码封装方案很好,完全可以取代ASP,但是用惯了ASP,而且对一些小项目也不想动用到.NET这个傍然大物,因为电脑性能跟不上,所以还是存在ASP封装的种种问题,经过多次试验,对转换成DLL的过程写下一些心得...

    虽然ASP.NET代码封装方案很好,完全可以取代ASP,但是用惯了ASP,而且对一些小项目也不想动用到.NET这个傍然大物,因为电脑性能跟不上,所以还是存在ASP封装的种种问题,经过多次试验,对转换成DLL的过程写下一些心得:

1、代码和DLL的区别

    DLL代码前要加上以下一段,目的是引用ASP五大对象:
Private Context As ScriptingContext Private Application As Application Private Response As Response Private Request As Request Private Session As Session Private Server As Server Public Sub OnStartPage(PassedScriptContext As ScriptingContext) Set Context = PassedScriptContext 'Asp运行环境对象 Set Application = Context.Application 'Asp 五大对象 Set Request = Context.Request Set Response = Context.Response Set Server = Context.Server Set Session = Context.Session End Sub

2、部件引用

  要引用MicroSoft Active Server Pages Objects Library
  如果DLL里也封装了数据库连接(Connections)和数据集(RecordSet),DLL工程可以使用原来ASP里的数据库写法,也可以通过以下引用部件的方法实现:MicroSoft ActiveX Data Objects 2.7 Library

 同时把原ASP程序里的Server.CreateObject("ADODB.CONNECTION")改成下面样子,加在代码头部
Public conn As New ADODB.connection Public rs As New ADODB.Recordset

另外:程序结束时要记得关闭连接,免得占用系统资源,影响服务器运行.
Set rs = Nothing rs.Close Set conn = Nothing '将连接设为空,释放它所占用的资源。 conn Close '将连接关闭(无释放连接所占用的资源)

3、DLL调试
    按常规办法,经常要操作重启IIS,很烦,最简单的办法,写一个BAT命令保存成sss.bat,放在桌面上,每次修改完DLL之前运行一次,然后在VB6里生成DLL,就可以运行程序了,不需要再注册一次DLL,为什么?我也不清楚:
regsvr32 E:VBvbdllmy.dll -u net stop "world wide web publishing service" net Start "world wide web publishing service"

4、改变ASP脚本编写习惯
   一般我会先写一个普通的ASP程序,运行成功需交付客户时才转换成DLL,这时,要注意ASP代码编写时把程序代码和HTML分成明显的两部分,不要混在一起乱糟糟的转换时要花很多精力去修改和整理。

5、其它。。。(想到再写)