1

这个问题与我之前的问题有关 Excel 进程的最大数量?,但行为不同。

简而言之:有一个 COM+ 组件在启动时会打开许多​​ Excel 进程。句柄被添加到列表中,因此它们不会超出范围或被垃圾收集。

如果我在本地运行此组件(Windows 7 64 位,12 Gb 内存),它可以正常启动,并且可以毫无问题地打开 30 个 excel 进程。

如果我在(虚拟)服务器(windows server 2003 R2 SP2 64 位,4 Gb)上运行此组件,则前 21 个 excel 进程正确启动,但未创建其余 9 个进程;在事件日志中,我看到 9 次以下错误:

 Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005.

所以创建最后 9 个 excel 进程会导致异常,它似乎达到了 21 个 excel 进程的限制。

如果我在另一台服务器(Windows Server 2003 SP 2、1 Gb RAM)上尝试它,它会创建 22 个 excel 进程和 8 个因相同异常而失败的进程。

我想知道是什么导致这些服务器上的 excel 进程创建失败?

编辑:如果我使用开始菜单手动打开它们,我可以毫无问题地打开 30 个 excel 实例。

有任何想法吗?

谢谢, L

4

1 回答 1

0

从技术上讲,您正在做的事情根本不受支持:http: //support.microsoft.com/kb/257757

Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定的行为和/或在此环境中运行 Office 时出现死锁。

也就是说,由于服务器之间的轻微不一致,我相信您遇到了某种资源冲突/限制,而不是特定于 excel 的东西。由于服务器上的内存量有限,它可能只是内存不足或碎片化。

于 2012-06-25T15:07:32.987 回答