【问题标题】:Excel automation in WCFWCF 中的 Excel 自动化
【发布时间】:2013-07-10 05:49:34
【问题描述】:

我们开发了两个项目 WCFASP.net 网站。WCF 服务由执行 excel 生成的代码组成 它有类似

的东西
Excel.Application xlapp=new Excel.Application();
xlapp.visible=true;
//get data from dataset and process it and then write it to excel

此 WCF 服务托管在我的 ASP.net 网站上,位于网页中的单击按钮上

但是,当我在 IIS 7 上运行此服务和 asp.net 时,会生成大量错误

一些错误如下

检索 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80070005。”

然后授予权限后

应用程序。 Microsoft Office Excel 无法打开或保存更多文档,因为
没有足够的可用内存或磁盘空间。 • 要提供更多可用内存,
关闭不再需要的工作簿或程序。 • 要释放磁盘空间,请删除文件
您不再需要从要保存到的磁盘中

由于所有这些错误,我无法在 IIS 7 上运行 excel

我已经尝试了从权限到身份验证的所有方法,但它会产生错误 我在本地机器上运行 XP,在 IIS 机器上运行 Win 7(这是 WIN 7 的问题吗?)

还有this 链接说根本不支持服务器端办公自动化

在 IIS 7 中启动 excel 是否有任何简单的方法?或者我应该在我的 ASP.net 网站中调用 excel 而不是 WCF 服务......

谢谢大家

【问题讨论】:

    标签: c# asp.net visual-studio-2010 visual-studio iis


    【解决方案1】:

    如果可能的话,应该使用OpenXML 库来实现 Excel 的自动化,因为它不需要运行 Excel 实例,这对于服务器端处理来说充其量是有问题的。

    【讨论】:

      【解决方案2】:

      Bas Brekelmans 是对的。您应该选择 OpenXML。我花了大约 2-3 天的时间寻找解决方案。有很多变通方法。在 System32/SysWOW64 中创建新路径。

      http://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64

      另一种解决方案是通过dcomcnfg.exe -> Component Services->Computers->My Computer->DCOM Config->Microsoft Word->右键单击->Properties->Security&Identity。

      您会发现很多关于它的问题,但可能会找到 1-2 个有效的回复。

      我有一台服务器可以与 Office 自动化一起正常工作,而在另一台服务器上却不能,无法告诉您原因。数周以来一直在解决这个问题。

      此外,服务器端自动化是 Microsoft 服务器不支持的功能(不应该)。

      另外,看看你在哪个版本下编译你的项目,是 x64 还是 x86。

      【讨论】:

        【解决方案3】:

        Bas Brekelmansmike27015 是对的。

        你不应该在 asp.net 项目中使用 COM 组件。 最好使用 OpenXml 库或一些第三方库,如 NPOI NPOI 是免费的,同时支持 xls 和 xlsx(open xml) 类型。

        【讨论】:

          猜你喜欢
          • 2013-04-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-02
          • 2021-05-16
          • 1970-01-01
          相关资源
          最近更新 更多