“呼叫被被呼叫者拒绝”的奇怪行为。 Excel的例外

时间:2018-12-26 11:08:05

标签: c# excel excel-interop

我有一个包含将数据导出到Excel的应用程序。它在大多数计算机上都能正常工作。但是,有两个会抛出

  

呼叫被呼叫者拒绝。 (来自HRESULT的异常:0x80010001(RPC_E_CALL_REJECTED))

当我尝试使用get_item()打开工作表时。有趣的是,当我设置断点并逐个字符串地执行所有操作时,没有任何异常。一切正常且流畅。但是在正常的工作行为中,它只是给出了例外。

MyApp = new Excel.Application();
MyApp.Visible = false;
string FileFullPath = Path.GetFullPath("Resources/Excel/FullMonthlyAct.xls");
MyBook = MyApp.Workbooks.Open(FileFullPath);
MySheet = (Excel.Worksheet)MyBook.Worksheets.get_Item(1); 
Excel.Range excelCell = MySheet.Cells[1, 1] as Excel.Range;

更新: 它不是上述问题的重复。在那里,大多数答案告诉您检查Office激活/安装/文件关联。正如我在Hans Passant的帮助下发现的那样,我收到此错误的原因仅仅是因为Excel无法及时加载工作簿。

更新:已解决 可能不是最优雅的解决方案,但是可以等到Excel打开https://stackoverflow.com/a/54126361/1442373Joost中所述的工作簿。

1 个答案:

答案 0 :(得分:-1)

您的应用程序将在所有已安装excel并已正确激活的计算机上运行。由于这些机器可能尚未正确激活Microsoft excel,因此无法在这些机器上工作。您需要确保已解决问题。