3

我们已经开发了两个项目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 的问题吗?)

这个链接也说根本不支持服务器端办公自动化

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

谢谢大家

4

3 回答 3

3

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

于 2013-07-10T08:56:03.740 回答
1

巴斯·布雷克尔曼斯是对的。您应该选择 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 -> 组件服务-> 计算机-> 我的电脑-> DCOM 配置-> Microsoft Word-> 右键单击​​-> 属性-> 安全和身份。

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

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

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

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

于 2013-07-10T09:01:20.243 回答
0

Bas Brekelmansmike27015是对的。

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

于 2013-09-30T14:10:24.050 回答