2013-10-24 264 views
4

我的ASP.Net-C#应用程序通过名称Microsoft.Office.Interop.Word.dll V14.0.0.0与mailmerge和dll一起使用。我的桌面上(安装办公室的地方)都很好。然而,当该应用程序部署在生产机上,下面的错误被抛出:Microsoft.office.interop.word.dll可以在没有安装Office的情况下工作吗?

System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

当类被注册,以下错误被发现:

Microsoft.Office.Interop.Word.dll was loaded but the entry-point DLLRegisterServer was not found. Make sure, this is a valid dll or OCX and try again.

我该如何解决这个问题? Office套件无法安装在生产机器上。

+2

如果使用Interop,则需要安装Office。你想做什么? – wgraham

+1

从ASP.NET或其他服务器技术使用Office Interop是一个可怕的想法。这些API被编写用于桌面应用程序,用于自动化Office(一套桌面应用程序)。服务器应用程序在许多方面有所不同,因此在其中使用Office Interop是非常非常糟糕的主意。它也不受Microsoft的支持,并可能违反您的Office许可证。请参阅[服务器端自动化办公室的注意事项](http://support.microsoft.com/kb/257757) –

+0

嗨,John, 很抱歉回复非常旧的帖子,但需要关于办公室互操作的替代方案的建议。 在ASP.NET网站中,我想导出一些图像和数据在PowerPoint中,但在看完这篇文章后,我很困惑现在使用什么..请建议.. – Rushikesh

回答

8

不,Interop库只是真正的Office库代码的一个外壳。因此,您需要将Office安装在您的应用运行的地方

0

如果无法在生产服务器上安装Office,则无法使用OpenXML

相关问题