0

使用位于网络文件夹中的 reg asm 注册的 COM 服务器无法正常工作。当您尝试创建对象时,会收到错误“自动化错误”。如果 dll 位于本地磁盘上,则一切正常。

附加信息:

  • .Net 3.5编写的COM库

  • 通过 VB 宏访问 COM

  • 图书馆有一个强大的名字

4

2 回答 2

1

将 COM 服务器放在网络共享上是自找麻烦。当映射的驱动器号不再映射或映射到其他地方时,它将随机失败。您至少需要到服务器的 UNC 路径(如\\machine\folder\etc),不太确定您是否会使用 /codebase 选项从 Regasm.exe 中得到它。验证注册表项值 HKLM\Software\Classes\CLSID{guid}。请确保您使用了 /codebase,没有它就无法工作。

信任可能是一个问题,使用 fuslogvw.exe 来查看发生了什么。您需要 caspol.exe 来分配信任。

然后是依赖的 DLL,Windows 和 CLR 都无法找到它们。要查看实际情况,请使用 SysInternals 的 ProcMon 实用程序。您将看到 COM 浏览注册表项并搜索 DLL,观察失败的调用。

于 2010-12-08T15:12:20.893 回答
0

可能是该组件需要完全信任,而您没有运行 .net 4.0。在旧版本中,除非您手动更改权限集,否则不会授予网络位置完全信任。

于 2010-12-08T14:42:06.613 回答