2012-01-30 94 views
1

我调试一些老的ASP代码,并在下面的错误无意中发现:Server.Create对象失败错误

Server.CreateObject失败

这里是代码行,我得到了错误:

Set Session("SessionBoolian") = Server.CreateObject("DBUtils.SQLExpression") 

DBUtils.SQLExpression位于何处?我似乎无法在代码中找到它的参考。它是如何设置的?

我的bin文件夹中有一个DBUtils.dll,有没有办法在DLL里面查看是否有SQLEXpression方法?

+0

设X是缺省值hkcr \ DBUtils.SQLExpression \ CLSID(在注册表中)的GUID,请在hkcr \ clsid \ X \ inprocserver32中查看,您可以看到它使用的dll - 它需要注册并且iis网站使用的任何帐户都需要相应的权限 – 2012-01-30 16:00:34

回答

2

DBUtils.SQLExpression很可能是一个ActiveXDLL。您最好的选择是搜索DBUtils.dll或DBUtils.SQLExpression.dll文件。

如果可用,您可能需要使用regsvr32(即在运行对话框中输入regsvr32 D:\MyPath\DBUtils.dll)将其注册到COM服务器,然后按回车键。

您可能还想在会话中设置ActiveXObject之前做一些错误处理,并确切地看到错误。类似这样的:

Dim sqlExpression 
sqlExpression = Nothing 

On Error Resume Next 
Set sqlExpression = Server.CreateObject("DBUtils.SQLExpression") 

If Err.Number <> 0 then 
    Response.Write "#: " & Err.Number & ", Source: " & Err.Source & ", Description: " & Err.Description 
Else 
    'Rest of your code 
End If 
+0

谢谢,似乎我所要做的只是注册dll。 – 2012-01-30 16:05:39

0

看起来这是第三方的active-x插件。您发布的代码段创建了一个实例,并将其保存到属性为“SessionBoolian”的实例中。