我正在尝试在 Windows Server 2008 标准框上注册一个基本的 COM dll。
我运行regsvr32 capicom.dll
它并报告DllRegisterServer in capicom.dll succeeded
。这是我们多年来在 Windows Server 2003 上使用的相同过程。
遗憾的是,当我尝试通过一个非常基本的 Microsoft vbscript 示例创建对象时,Set oStore = CreateObject("CAPICOM.Store")
它会抛出“ActiveX 组件无法创建对象”错误。
我觉得可能是这个 dll 有问题,于是我尝试了我们使用的其他几个 DLL,结果相同。我尝试在系统、system32 和 syswow64 中使用 regsvr32,结果都一样。我不太了解它们之间的区别,但我觉得值得一试。
该 dll 存储在 d:\ 中,并且似乎拥有正确的权限(尽管那将是完全不同的错误)。
*更新:通过额外的测试,我们已确定(通过依赖项遍历器)ieshims.dll 和 linkinfo.dll 缺失。它们在机器上,但报告为无法找到。capicom.dll 和内部开发的 dll 都是如此。
感谢您提供的任何帮助或想法!
答案1
看来 wscript 在 64 位模式下运行,无法看到注册信息...按照http://forums.iis.net/t/1154189.aspx我能够在 32 位模式下运行 createobjects(通过经典 asp),并且组件正常工作。感谢大家的帮助!
答案2
您可以尝试使用以下方式打开 DLL依赖性遍历器。如果您缺少 capicom.dll 所依赖的任何 DLL,Dependency Walker 将帮助您找到它们。
答案3
在64位Windows操作系统中,文件Regsv32.exe有两个版本:
The 64 bits is %systemroot%\System32\regsvr32.exe.
The 32 bits is %systemroot%\SysWoW64\regsvr32.exe.
尝试复制这两个可执行文件中的任何一个,以及 OCX 或 DLL 文件进行注册。以管理员模式运行,或将兼容性选项卡中的可执行文件的属性更改为“以管理员身份运行此程序”。注册 ActiveX (ocx) 或 DLL 或运行 RegSvr32.exe nombre_dll nombre_activeX RegSvr32.exe。
答案4
右键单击命令提示符图标,并选择“以管理员身份运行”,然后尝试注册您的 DLL。请记住,您在 Windows 上具有管理员权限。
卡帕