在 Windows 10 上使用 Excel 互操作操作无法打开超过 11 个 Excel 实例

Can not open more than 11 instances of Excel using Excel interop on windows 10

提问人:Aric Lasry 提问时间:12/7/2015 最后编辑:Alexei LevenkovAric Lasry 更新时间:2/5/2016 访问量:1207

问:

在 C# 中使用 Excel 互操作,在具有 16GB 内存的 Macbook Pro 上的 Windows 10 下,我无法打开超过 11 个 Excel 实例。在第 11 个实例之后,我在“弹出窗口”中收到以下错误:

“无法使用对象链接和嵌入”

这是我使用的代码:

List<Application> apps = new List<Application>();
for (int i = 0; i < 15; i++)
{
    Application a = new Application();
    apps.Add(a);
}

每个 Excel 进程大约有 15k 的内存,与机器上可用的 16GB 相去甚远......

我使用的是 .NET Framework 4.5.2、windows 10、macbook pro 和 16GB 内存和 Excel 个人。

C# Excel Office- com-互操作

评论

5赞 Enigmativity 12/7/2015
打开 Excel 的实例会消耗 COM 句柄和内存。你可能只是达到了这些限制。顺便说一句,Excel 使用的内存远远超过 15KB。它更像是 15+MB。
1赞 Glorin Oakenfoot 12/7/2015
我无法在我的机器上重现它。这里只是一个预感......您能否在任务管理器中查看实际运行的 Excel 实例数量?
2赞 Enigmativity 12/7/2015
@AricLasry - 天哪,你让这变得很难了。为什么要开发需要打开多个实例的软件?
1赞 Nick.Mc 12/7/2015
每个人在这里得到的是......可能有一种更好的方法来做你正在做的任何事情。如果/当你研究出如何破解 11 个实例时,你就会发现其他需要克服的限制,因为看起来你正在尝试用错误的工具做正确的事情。您还可能在遇到下一个技术限制之前很久就遇到许可限制。
1赞 Scott Chamberlain 12/7/2015
如果将代码作为服务运行,则根本不应使用 Excel 互操作。它不适用于非交互式会话。请参阅KB257757,您应该改用 Open Xml SDK for Office,即Microsoft发布的库,用于在服务环境中自动创建 Office 文档。

答:

0赞 Jeremy Thompson 12/7/2015 #1

您是否尝试在组件服务中更改 DCOM 配置:

1:启动>运行并键入“DCOMCNFG”

2:展开组件服务器>计算机 > 打开“DCOM 配置”并找到“Microsoft Excel 应用程序”

3:将其标识设置为“启动用户”。

如果在列表中看不到 Microsoft Excel 应用程序,这是因为你在 x64 电脑上安装了 x86(32 位)Office。在这种情况下,请运行以下命令以使用 32 位版本的 DCOM 配置:

C:\WINDOWS\SysWOW64>mmc comexp.msc /32

enter image description here

评论

0赞 Aric Lasry 12/7/2015
我在 Windows 上运行...它应该是什么文件?
0赞 Aric Lasry 12/7/2015
你编辑了你的答案,所以我之前的评论不再相关。我试过了,但“Microsoft Excel 应用程序”没有出现......我尝试了很多东西来让它出现,但它没有用。
0赞 Jeremy Thompson 12/7/2015
请参阅我的编辑以找到 Microsoft Excel 应用程序
0赞 Aric Lasry 12/7/2015
我能够使用 32 位命令和安装 excel 64 位在 dcom 中找到它。设置已经正确,我仍然遇到这个问题。