从COM .dll获取错误'80070002'

时间:2013-02-14 19:05:37

标签: c# javascript .net com

我正在将经典ASP站点从Windows 2000服务器移动到Windows 2008(dev和prod)。我有一个在.NET 1.1中创建的.dll。当位于此securityUtility.asp中的JScript中创建的函数使用dll创建ActiveX对象时,会发生错误。该行看起来如下:

function getProfileFromLdap(user,pw){

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位应用程序”的应用程序池为true 适用于两种新环境

  • “Everyone”被授予.dll

  • 的完全权利

我不确定我错过了什么!

2 个答案:

答案 0 :(得分:1)

这就是我最终为那些像我一样挨着头撞墙的人所做的事情:

  • 以管理员身份打开命令提示符
  • 导航到存储dll的位置
  • 使用未注册的dll “C:\ Windows \ Microsoft.NET \ Framework \ v1.1.4322 \ RegAsm”/ u coSecurity.dll
  • 使用重新注册dll “C:\ Windows \ Microsoft.NET \ Framework \ v1.1.4322 \ RegAsm”coSecurity.dll /代码库
  • 你会得到一个regasm警告,但也应该收到消息“类型 已成功注册“

之后我不再收到错误!

答案 1 :(得分:0)

通常HRESULT 80070002表示“找不到文件”。

我的猜测是你错过了依赖。尝试使用Dependency Walker查看是否存在应包含的依赖项。

另请参阅this thread以获取有关手动注册COM服务器的一些提示。