COMException (0x80010108 - RPC_E_DISCONNECTED) Beim Schließen von Excel.Arbeitsmappe
Wenn ich den folgenden code ausführen, bekomme ich die exception unten:
''# 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))
Hinweis: Alle Daten, die scheint, gewesen zu sein retreived richtig.
Bitte helfen Sie mir, die diagnose und überwindung dieser Fehler.
InformationsquelleAutor Steven | 2010-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
RPC_DISCONNECTED...die gefürchtete "Das aufgerufene Objekt wurde von den clients getrennt." Problem. Es gibt eine Tonne von Ursachen zu diesem, sieht aus wie haben Sie abgedeckt, die Globale Variablen Problem mit
Excel.
. Setzen Sie den erstenReleaseCOM(ReportSheet)
untenReportBook(Close)
und führen Sie es? Schauen Sie sich auch diese.Mann, tut mir Leid, das zu hören. Ich habe mich mit diesem Problem ein paar mal und es war immer wie Zauberei, um es zu arbeiten. Das Hauptproblem hier ist, dass durch die Zeit erhalten Sie zu
ReportBook.Close(True)
Excel ist nicht mehr Geschäftsführer ReportBook - etwas loslassen - daher der Fehler. Haben Sie versucht, einen code Schritt für Schritt durch mit debug hinzufügen einer Uhr ReportBook?Es habe! Code-stepping gearbeitet. Mein code öffnete versehentlich die gleiche Datei zweimal geschlossen und zweimal (na mal dann abgestürzt, wenn die Schließung ein zweites mal). Vielen Dank für Ihre Hilfe.
Glücklich, das zu hören. Dass insbesondere Fehler ist wirklich frustrierend, so war es toll, dass Sie Dinge erarbeitet!
InformationsquelleAutor Todd Main
Ich kann nicht sagen, warum es nicht auf der Grundlage der code, den Sie zeigen.
Haben Sie als Wechsel von der Excel-Automation über COM-Interop auf eine 3rd party-Komponente?
SpreadsheetGear für .NET erhalten, können Sie Excel-Arbeitsmappen und-Werte /formatiert text /Neuberechnen von Formeln /etc... ohne die Probleme im Zusammenhang mit COM-Interop.
Können Sie sehen, live ASP.NET Proben hier und laden Sie die Kostenlose Testversion hier wenn Sie wollen, um es selbst zu versuchen.
Disclaimer: ich besitze SpreadsheetGear LLC
Wenn Sie ok sind, die Arbeit mit xlsx-dann gibt es EPPlus das kostenlos! epplus.codeplex.com
InformationsquelleAutor Joe Erickson