Excel 互操作 Workbooks.Open 不一致

Excel Interop Workbooks.Open inconsistencies

我有一个正在打开多个工作簿的进程

var exApp = new Excel.Application(); 
Excel.Workbook ONE;
Excel.Workbook TWO;
Excel.Workbook THREE;
ONE = exApp.Workbooks.Open(ONELocation);
TWO = exApp.Workbooks.Open(TWOLocation);
THREE = exApp.Workbooks.Open(THREELocation);
Console.WriteLine("All Excel workbooks opened successfully\n");

有时它运行没有问题。

虽然我有时会在崩溃时遇到以下异常

System.Runtime.InteropServices.COMException: 'The remote procedure call failed. (Exception from HRESULT: 0x800706BE)'

异常发生在不同的工作簿上,有时根本没有。当它在重新运行几次后发生时,该过程成功通过并且所有数据都被正确处理。

为什么它有时有效而其他时候无效?有没有更好的方法来打开这些工作簿?我该如何阻止这种情况发生?

RPC_S_CALL_FAILED 确实是根本原因,正如链接到的 question 用户 xxbbcc 所指出的可能重复。

但是,那只是告诉了我原因,并没有解决问题。 我在 RPC_S_CALL_FAILED 中搜索 excel 并找到了这个 SuperUser question

我按照问题中的描述禁用了 "FoxitReader PDF Creator COM Add-in",我的程序现在运行稳定,没有错误。

How to disable the plugin: Excel > File > Options > Add-ins > Manage, then choose "COM add-ins" > Go. And then untick the problematic plugin.