我正在将经典 ASP 站点从 Windows 2000 服务器移动到 Windows 2008(开发和产品)。我有一个在 .NET 1.1 中创建的 .dll。当在位于此 securityUtility.asp 中的 JScript 中创建的函数使用 dll 创建 ActiveXobject 时,会发生该错误。该行如下所示:
函数getProfileFromLdap(用户,密码){
var aClass, aProfile
aClass = new ActiveXObject("com.co.comp.security.ldap.LDAPLogin"); ... }
发生的错误是:错误 '80070002' E:\SITES\WWW-COMPANYSITE-COM\SITE\BINS../../siteInc/securityUtility.asp,第 850 行
我已经运行以下命令在注册表中注册 dll:
"C:\Windows\Microsoft.NET\Framework\v1.1.4322\RegAsm" coSecurity.dll /tlb:coSecurity.tlb
我不知道这是否值得一提,但有一次,当我试图将网站移至生产环境时,该网站在开发中运行良好,但出错了。很久以前,我已将该站点移至新的开发服务器(Windows 2008)。我已经做了笔记,所以当我将它投入生产时,我知道我采取了哪些步骤。我想也许我忘了记录一个步骤,所以为了追溯我所做的,我卸载了 .dll 并完成了我记录的步骤。它现在在开发中被打破,但在某一时刻它正在工作。
我不确定值得一提的另一件事是该站点是新开发服务器上的第一个站点。.NET 1.1 在任何其他框架之前安装。4.0 和 2.0 是事后安装的。在 prod 服务器上,首先安装了 4.0,然后安装了 1.1。不确定这是否重要。
当开发站点工作时,我确认这些项目在注册表中,将它们与旧产品、新开发服务器和新产品进行比较
在旧的生产服务器上,GAC 中没有任何内容
coSecurity.dll 与securityUtility.asp (代码所属的页面)在同一个文件中。两个新环境的应用程序池都具有“启用 32 位应用程序”
“每个人”都被授予对 .dll 的完全权限
我不确定我错过了什么!