打印本文 打印本文  关闭窗口 关闭窗口  
Asp组件初级入门与精通
作者:龙卷风.NET  文章来源:csdn.net  点击数  更新时间:2006/4/22 22:53:20  文章录入:admin  责任编辑:admin

   

在运行前几章的例子,可能或多或少的都会碰上一些问题
如:组件编译后,又要修改,发生”权限被拒绝,’f:\csdn\fcom.dll’”等等的错误。
 
当asp页面浏览时,打开任务管理器,会看到一个dllhost.exe,用户名为IWAM_YANG的进程。IWAM_YANG会根据计算机名而有所不同。
 
可以使用以下几种方式来解决
1.  重新启动iis.
在控制面板中找到管理工具->internet信息服务->右键点击左边树图第二层本地计算机->所有任务->重新启动IIS即可,这个操作需要一点时间。
此时你可以看到这个dllhost.exe的进程已经关闭
 
2.  上面这种方法的缺点就是当前所有的网站都被关闭直到重新启动
有没有针对单个网站或者虚拟目录的?有
在控制面板中找到管理工具->internet信息服务->找到你的组件运行的虚拟目录。->右键属性->第一项虚拟目录中->应用程序保护->点击卸载即可。
此时你可以看到这个dllhost.exe的进程已经关闭
 
3.  如果你觉得麻烦,直接在Windows任务管理器中结束该进程既可
 
4.  最后一种方法
在控制面板中找到管理工具->组件服务->在树图中点击计算机,我的电脑,正在运行的进程->IIS Out-Of-Process Pooled Applications(2860)->右键关闭即可
此时你可以看到这个dllhost.exe的进程已经关闭

[NextPage]

我们来做一个组件,一个可以生成GUID的组件

全局唯一标志(GUID)

一个GUID可以表示成32个字符的十六进制格式。COM提供了一个名叫CoCreateGuid的系统级函数,可以用它来生成新的GUID。该函数依靠一种类似使用计算机网卡的唯一标志符和系统时钟等信息的算法,来创建一个在时间和空间上都唯一的GUID.

 

打开vb6,新建Activex Dll工程。工程名修改为fCom,类名修改为fC8

Option Explicit

 

Private Type GUID

    Data1 As Long

    Data2 As Long

    Data3 As Long

    Data4(8) As Byte

End Type

Private Declare Function CoCreateGuid Lib "ole32.dll" (pguid As GUID) As Long

Private Declare Function StringFromGUID2 Lib "ole32.dll" (rguid As Any, ByVal lpstrClsId As Long, ByVal cbMax As Long) As Long

 

'GUID

'参数:

'返回值:STRING,一个GUID.

Public Function GetGUIDCode() As String

  Dim uGUID As GUID

  Dim sGUID As String

  Dim bGUID() As Byte

  Dim lLen As Long

  Dim RetVal As Long

 

  lLen = 40

  bGUID = String(lLen, 0)

  CoCreateGuid uGUID '把结构转换为一个可显示的字符串

  RetVal = StringFromGUID2(uGUID, VarPtr(bGUID(0)), lLen)

  sGUID = bGUID

  If (Asc(Mid$(sGUID, RetVal, 1)) = 0) Then RetVal = RetVal - 1

  GetGUIDCode = Left$(sGUID, RetVal)

End Function

 

 

 

Ok,一个组件就写好了,点击菜单->文件->生成fCom.dll文件

确定,在目录下就会有fCom.dll文件

 

测试

打开visual interdev6.0,生成一个asp文件

<%@ Language=VBScript %>

<HTML>

<BODY>

<%

dim obj

set obj=server.CreateObject("fCom.fC8")

Response.Write obj.GetGUIDCode()

Response.Write "<br>"

Response.Write obj.GetGUIDCode()

%>

 

</BODY>

</HTML>

 

配置好虚拟目录,在ie中执行此asp文件,得到结果如下:

{EF7BF6F9-564C-44D9-91BF-F31695DA6298}
{C8A68CAC-A108-45A6-84F5-0BF92B9CF721}

可以多次刷新,可以看到这个值在不断变化.

上一页  [1] [2] [3] [4] [5] [6] [7] 

打印本文 打印本文  关闭窗口 关闭窗口