C# 在WCF服务中使用Office互操作

C# 在WCF服务中使用Office互操作,c#,wcf,com,office-interop,C#,Wcf,Com,Office Interop,我目前对一些事情感到困惑,因为我没有足够的WCF知识。我有一个服务,它有一个调用Excel应用程序(COM对象)的方法。我正在使用该服务创建excel电子表格并格式化它。为了格式化文件,我从代码中打开文件并对其执行宏。它在我的个人笔记本电脑上运行良好,但在服务器上它给了我错误。然后我在服务器上安装了excel,一切似乎都很好。但是在做这些的时候,我在asp.net论坛上偶然发现了这个页面。它声明微软不建议在webservices中使用COM对象 这是链接:“ 我想从做过类似工作或对类似工作有一定

我目前对一些事情感到困惑,因为我没有足够的WCF知识。我有一个服务,它有一个调用Excel应用程序(COM对象)的方法。我正在使用该服务创建excel电子表格并格式化它。为了格式化文件,我从代码中打开文件并对其执行宏。它在我的个人笔记本电脑上运行良好,但在服务器上它给了我错误。然后我在服务器上安装了excel,一切似乎都很好。但是在做这些的时候,我在asp.net论坛上偶然发现了这个页面。它声明微软不建议在webservices中使用COM对象

这是链接:“


我想从做过类似工作或对类似工作有一定理论知识的人那里获得一些见解。

COM会产生大量开销(每次调用web服务时,都会产生Excel.exe的实际实例)。如果我在一分钟内调用您的web服务3000次会怎么样?如果没有正确清理Excel实例,可能会很快导致服务器停机。在本文中,“使用服务器端办公自动化的问题”一节强调了在web服务中自动化办公的许多缺点。我会使用一个不需要安装office且线程安全的库,比如Aspose(或类似的库)。@Cory是的,但是可以限制Excel调用的数量。Excel调用请求可以放入队列,该队列可以由单独的进程异步处理。@Cory,感谢您的回复。我明白你的意思。但文件生成过程中最重要的部分是格式化我使用VBA的文件。我在这方面很幼稚,知识也很有限。使用您提到的解决方案会提供Excel的分组和小计等功能吗?通过桌面应用程序使用Office应用程序的情况非常普遍。专家的建议是不要从服务中尝试这一点。我听说唯一能起作用的是困难。在桌面应用程序中编写外接程序。在该应用程序中承载WCF服务,确保一次只发生一个连接。从您的主服务与WCF服务交谈。您可能希望放弃通过COM实现Excel自动化的方法,并深入研究。我过去在服务器上非常成功地使用了它。你也可以做格式化!