C# WCF中的Excel自动化

C# WCF中的Excel自动化,c#,asp.net,visual-studio-2010,visual-studio,iis,C#,Asp.net,Visual Studio 2010,Visual Studio,Iis,我们已经开发了两个项目WCF和ASP.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时,会生成大

我们已经开发了两个项目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-0000000000 46}的组件的COM类工厂失败:80070005。“

然后在授予权限之后

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

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

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

林克还说,根本不支持服务器端办公自动化

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


谢谢,如果可能的话,自动化Excel应该在库中完成,因为它不需要运行Excel实例,这对于服务器端处理来说是有问题的。

Bas Brekelmans是对的。你应该使用OpenXML。我花了大约2-3天的时间来寻找解决方案。Cre正在System32/SysWOW64中创建新路径

另一种解决方案是通过dcomcnfg.exe->组件服务->计算机->我的计算机->DCOM配置->Microsoft Word->右键单击->属性->安全和标识

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

我有一台服务器可以正常运行Office的自动化,而另一台服务器不能,无法告诉您原因。我已经对这个问题进行了数周的故障排除

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

此外,如果项目是x64或x86,请查看编译项目的版本。

并且正确无误

永远不要在asp.net项目中使用COM组件。 最好使用OpenXml库或类似的第三方库 NPOI是免费的,支持xls和xlsx(开放xml)类型