COMException(0x80010108 – RPC_E_DISCONNECTED)closuresExcel.Workbook时
当我运行下面的代码,我得到下面的exception:
''# NOTE: ExcelApp is a Private main form variable Dim ReportBooks As Excel.Workbooks = ExcelApp.Workbooks Dim ReportBook As Excel.Workbook = ReportBooks.Open(localFilename) Dim ReportSheet As Excel.Worksheet = ReportBook.Sheets("Report") ''# Retreive data from sheet ReleaseCOM(ReportSheet) ReportBook.Close(True) ''# Error raised here ReleaseCOM(ReportBook) ReleaseCOM(ReportBooks)
ERROR: COMException was unhandled The object invoked has disconnected from its clients. (Exception from HRESULT: 0x80010108 (RPC_E_DISCONNECTED))
注意:所有数据似乎都已被正确回收。
请帮我诊断并克服这个错误。
RPC_DISCONNECTED …可怕的“ 被调用的对象已经从客户端断开连接 ”问题。 这里有很多原因,看起来你已经用Excel.
覆盖了全局variables的问题Excel.
。 你可以把ReportBook(Close)
下面的第一个ReportBook(Close)
并运行它? 另外,看看这个 。
根据你所展示的代码,我不能说为什么它是失败的。
你有没有考虑从使用COM Interop的Excel Automation切换到第三方组件?
SpreadsheetGear for .NET可以让您加载Excel工作簿并获取值/获取格式化文本/重新计算公式/等…没有与COM Interop相关的麻烦。
你可以在这里看到活的ASP.NET示例,如果你想自己试试,可以在这里下载免费试用版。
免责声明:我自己的SpreadsheetGear LLC