【问题标题】:Can I install. NET COM library located on a network shared folder?可以安装吗。 NET COM 库位于网络共享文件夹中?
【发布时间】:2010-12-08 14:29:06
【问题描述】:

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

附加信息:

  • .Net 3.5编写的COM库

  • 通过VB宏访问COM

  • 库有一个强名称

【问题讨论】:

    标签: .net .net-3.5 com regasm network-shares


    【解决方案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,注意失败的调用。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我尝试使用以下命令将库添加到受信任的库中:caspol -machine -addfulltrust "\\lanpc\sharedfolder\mycomserver.dll",但没有结果
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多