将MS Office Interop v11与Office 2010结合使用

问题描述:

我们正在将一些旧版应用程序从Win 2003 Server + IIS6迁移到新的服务器Win 2008 Server + IIS7。将MS Office Interop v11与Office 2010结合使用

我们正面临几个问题,其中最后一个是我们的一些应用程序正在使用Office Interop v11(Office 2003),而在新服务器上安装Office 2010(+ interop v14)。

我得到这个错误:

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005.

我试图解决它下面有很多的论坛(这一个,例如:http://forums.asp.net/t/1303594.aspx/1)。但没有任何变化...

现在我想知道这是否可以取决于不同版本的interop安装。 有没有办法让旧版应用程序工作没有重新编译他们为新版本的互操作?

+0

我知道,目前这可能不是您的选择,但您不应该在Web应用程序中使用Office Interop在所有。 [这不是由微软正式支持。](http://*.com/a/8709255/87698) – Heinzi

+0

@ Heinzi我知道,但正如我所说这些是遗留应用程序... – davioooh

要解决此问题,我只需在新服务器上安装Office 2003。 (我发现Office的两个版本可以在同一台机器上无冲突地共存...)

尝试NetOffice。这是Office Interop API的一个非常透明的包装。他们在运行时检测并加载可用的Interop DLL,因此您不必针对他们构建解决方案。

+0

我必须更改任何参考/依赖我的应用程序使用这个工具? – davioooh

+0

这是一个图书馆。您需要引用它并更改'using'指令来导入NetOffice类型而不是Interop。使用Interop的代码几乎不需要改变。 – MisterMetaphor