COMException (0x80010108 - RPC_E_DISCONNECTED) Quando Chiusura Excel.Workbook
-
19-09-2019 - |
Domanda
Quando eseguo il seguente codice, ottengo l'eccezione di seguito:
''# 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))
. Nota: Tutti i dati sembra essere stato recuperato i correttamente
Ti prego, aiutami diagnosticare e superare questo errore.
Soluzione
RPC_DISCONNECTED ... il temuto " L'oggetto invocato si è disconnesso dai client. " questione. Ci sono un sacco di cause per questo, sembra di aver coperto il problema variabili globale con Excel.
. Si può mettere il primo ReleaseCOM(ReportSheet)
sotto ReportBook(Close)
ed eseguirlo? Inoltre, controllare questo .
Altri suggerimenti
Non posso dire il motivo per cui sta venendo a mancare basato sul codice si sta mostrando.
Avete considerato il passaggio da Excel Automation utilizza COM Interop a un componente 3rd party?
SpreadsheetGear per NET ti permetterà di caricare le cartelle di lavoro di Excel e ottenere valori / testo formattato ottenere / ricalcolare formule / etc ... senza i problemi connessi con l'interoperabilità COM.
È possibile vedere i campioni dal vivo ASP.NET qui e scaricare la versione di prova gratuita qui se volete provare voi stessi.
Disclaimer: possiedo SpreadsheetGear LLC