Asp.net mvc 4 如何使用ATL COM(dll)引用的MVC4 web.api应用程序在IIS 7上工作

Asp.net mvc 4 如何使用ATL COM(dll)引用的MVC4 web.api应用程序在IIS 7上工作,asp.net-mvc-4,dll,iis-7,com,Asp.net Mvc 4,Dll,Iis 7,Com,我需要我的MVC4 web.api应用程序来处理简单Com对象(ATL dll)。 所有这些都可以在development server上正常工作,但当我将项目发布到本地IIS时,会收到错误消息 由于以下错误,无法获取CLSID为{E3D8B330-0622-4857-99D2-A72EB7A4CDE3}的组件的COM类工厂:80040154类未注册(HRESULT的异常:0x80040154(REGDB_E_CLASSNOTREG))。 我用regsvr32注册了我的dll。 我甚至制作了

我需要我的MVC4 web.api应用程序来处理简单Com对象(ATL dll)。 所有这些都可以在development server上正常工作,但当我将项目发布到本地IIS时,会收到错误消息

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

我用regsvr32注册了我的dll。 我甚至制作了使用相同dll的示例控制台应用程序,所有这些都可以通过这种方式正常工作


有什么建议吗?

使用运行IIS的凭据,测试应用程序能否成功运行

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

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

已解决

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

我不确定我是否完全理解您的问题:什么是测试应用程序(开发IIS上的控制台应用程序或web应用程序)?您在最初的问题中说“我甚至制作了使用相同dll的示例控制台应用程序,所有这些应用程序都以这种方式工作良好。”您是否可以使用运行IIS的相同帐户登录IIS计算机,然后运行测试应用程序以查看其是否工作?IIS正在使用系统帐户运行。我不确定我是否能够以同样的方式启动我的控制台应用程序。对不起,如果我错了。另外,所有的事情都发生在我的本地PC上-我安装了带IIS7的Win7和VS2010。