【问题标题】:Error on WCF service with COM references带有 COM 引用的 WCF 服务出错
【发布时间】:2013-09-25 14:40:38
【问题描述】:

当我在 VS2012 中调试 WCF 时,它运行正常。引用没问题,但是我在IIS中发布时服务无法解析引用。发布时的输出文件夹中,没有这些dll,不知道是否正常。

我收到此错误:“No se pudo recuperar elgenrador de clases COM para el componente con CLSID {9A8831F1-A263-11D1-8DCF-00A0C90FFFC2} debido al siguiente 错误:80040154 Clase no registrada (Excepción de HRESULT: 0x80040154 ( REGDB_E_CLASSNOTREG))"

【问题讨论】:

    标签: wcf .net-4.0 com rdo


    【解决方案1】:

    最简单的方法是以管理员身份登录到该服务器并为 DLL 运行与在开发计算机上获取它们相同的安装包。对于对 DLL 的引用,您可能不希望将 Copy Local 设置为 true。安装 COM 对象后,它们会在注册表中注册,这就是您需要管理员权限的原因。您需要先在 DEV 服务器上进行测试!

    如果您没有原始安装包,您可能需要 Google DLLS,确保您获得正确的版本。

    您只需要这样做一次,然后就可以发布您的服务的新版本,而无需重新安装 COM 对象。

    如果您希望能够轻松地安装到多台机器上,您可以通过将安装和部署项目添加到您的解决方案来做到这一点,尽管 DLL 附带的安装程序可能是一个更好、更简单的选择.

    编辑, 例如,我在 Microsoft 站点 MSRdo20.cab 上找到了 RDO 2.0 的安装

    【讨论】:

    • 我在我正在开发的同一台机器上发布 WCF。我很少能访问这些参考资料。我尝试将管理员凭据设置为 ApplicationPool 但不起作用。
    【解决方案2】:

    您需要将这些程序集本地复制到您的构建输出中。最简单的方法是在 Visual Studio 中更改它们:

    【讨论】:

    • 您好,我的参考资料中不允许使用此选项
    【解决方案3】:

    IIS 不太可能访问您的文档文件夹。您要么必须授予 apppool 身份对保存 dll 的文件夹的读取权限,要么取消注册它们并在其他地方注册它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-10
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多