【问题标题】:How to make MVC4 web.api aplication referenced with ATL COM (dll) work on IIS 7如何使 ATL COM (dll) 引用的 MVC4 web.api 应用程序在 IIS 7 上工作
【发布时间】:2013-09-15 13:27:27
【问题描述】:

我需要我的 MVC4 web.api 应用程序来处理简单的 Com-object (ATL dll)。 在开发服务器上一切正常,但是当我将项目发布到本地 IIS 时,我收到了错误消息

由于以下错误,无法获取具有 CLSID {E3D8B330-0622-4857-99D2-A72EB7A4CDE3} 的组件的 COM 类工厂:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

我使用 regsvr32 来注册我的 dll。 我什至制作了使用相同 dll 并且一切正常的示例控制台应用程序。

有什么建议吗?

【问题讨论】:

    标签: asp.net-mvc-4 dll iis-7 com


    【解决方案1】:

    测试应用能否使用运行 IIS 的凭据成功运行?

    如果没有,运行 IIS 的帐户是否有权访问注册表项?

    应用程序池是 32 位还是 64 位;它与 COM DLL 匹配吗?

    【讨论】:

    • 我不确定我是否完全理解您的问题:什么是测试应用(开发 iis 上的控制台应用或 Web 应用)?
    • 您在原始问题中说“我什至制作了使用相同 dll 的示例控制台应用程序,并且所有这些都以这种方式正常工作。”能否使用运行 IIS 的同一帐户登录 IIS 机器,然后运行测试应用程序以查看它是否工作?
    • IIS 正在系统帐户下运行。我不确定我能否以同样的方式启动我的控制台应用程序。对不起,如果我错了。附言所有的事情都发生在我的本地 PC 上 - 我安装了 IIS7 和 VS2010 的 Win7。
    【解决方案2】:

    解决了!

    需要为 x64 构建 COM 对象 (dll)(请参阅 VS 中的项目属性)。 我安装了 Win7 x64,所以在其上运行的 IIS 也是 x64(我猜)。

    【讨论】:

      猜你喜欢
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 2011-09-26
      • 2013-09-08
      • 2014-07-17
      • 2012-09-09
      • 1970-01-01
      相关资源
      最近更新 更多