wake-up-neo.com

System.Runtime.InteropServices.COMException (0x800A03EC)

Die Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs()-Methode funktioniert einwandfrei unter Windows Server 2003 und auch unter XP, jedoch nicht unter Windows Server 2008. Ich habe sie kopiert, da sie alle DLLs und Berechtigungen hat

Ich habe auch alle Lösungen aus dem Netz ausprobiert, wie z. B. Kultureinstellungen und DCOM-Berechtigung.

Folgende Fehlermeldung wird angezeigt:

System.Runtime.InteropServices.COMException (0x800A03EC): Ausnahme von HRESULT: 0x800A03EC

beim 

Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs (Objektdateiname, Objektdateiformat, Objektkennwort, Objekt WriteResPassword, Objekt ReadOnlyRecommended, Objekt CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object AddToMo . TextCodepage, Object TextVisualLayout, Object Local)

Bitte helfen ..!

27
Sameer S

Antwort gefunden ....... !!!!!!!

Offiziell wird Microsoft Office 2003 Interop auf Windows Server 2008 von Microsoft nicht unterstützt. 

Nach vielen Umstellungen und Kombinationen mit Code und Suche haben wir jedoch eine Lösung gefunden, die für unser Szenario geeignet ist.

Die Lösung besteht darin, den Unterschied zwischen der Art und Weise, in der Windows 2003 und 2008 seine Ordnerstruktur beibehalten, zu ergänzen, da Office Interop vom Desktopordner für das Öffnen/Speichern von Dateien abhängt. Das System 2003 enthält den Desktopordner unter systemprofile, der 2008 nicht vorhanden ist.

Wenn Sie diesen Ordner also 2008 unter der jeweiligen Hierarchie erstellen, wie unten angegeben; Das Büro Interop kann die Datei nach Bedarf speichern. Dieser Desktop-Ordner muss unter erstellt werden 

C:\Windows\System32\config\systemprofile

UND

C:\Windows\SysWOW64\config\systemprofile

Das hat für mich funktioniert ... 

Prüfen Sie auch, ob .NET 1.1 installiert ist, da es von Interop benötigt wird und nicht von Windows Server 2008 vorinstalliert ist

Oder Sie können auch die SaveCopyas () -Methode verwenden.

Danke Leute..!

48
Sameer S

Versuchen Sie es so, wie es für mich funktionierte ...

  1. Gehen Sie zu "Start" -> "Ausführen" und geben Sie "dcomcnfg" ein.
  2. Das Fenster der Komponentendienste wird geöffnet. Erweitern Sie "Konsolenstamm" -> "Computer" -> "DCOM-Konfiguration".
  3. Suchen Sie in der Liste der Komponenten nach "Microsoft Excel-Anwendung".
  4. Klicken Sie mit der rechten Maustaste auf den Eintrag und wählen Sie "Eigenschaften".
  5. Gehen Sie im Eigenschaftendialog zur Registerkarte "Identität".
  6. Wählen Sie "Der interaktive Benutzer".

mit freundlicher Genehmigung von Letzter hier erwähnter Absatz

10
Pratik Gaikwad

Einige Googles zeigen, dass möglicherweise eine beschädigte Datei vorhanden ist:

http://bitterolives.blogspot.com/2009/03/Excel-interop-comexception-hresult.html

und dass Sie Excel anweisen können, es trotzdem mit dem Parameter CorruptLoad zu öffnen, etwa mit ...

Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true);
5
Eamon Nerbonne

Beim Versuch, eine Excel-Datei zu speichern, ist dieser Fehler aufgetreten. Der Code funktionierte gut, als ich MS Office 2003 verwendete. Nach dem Upgrade auf MS Office 2007 begann ich dies zu sehen. Es würde jedes Mal passieren, wenn ich versuchte, eine Excel-Datei auf einem Server oder einer Remote-Freigabe zu speichern.

Meine Lösung war zwar rudimentär, hat aber gut funktioniert. Ich habe das Programm die Datei lokal gespeichert, z. B. auf dem Laufwerk C:\des Benutzers. Verwenden Sie dann die Methode "System.IO.File.Copy (File, Destination, Overwrite)", um die Datei auf den Server zu verschieben. Dann können Sie die Datei auf dem Laufwerk C:\löschen.

Funktioniert großartig und einfach. Aber nicht der eleganteste Ansatz.

Hoffe das hilft! Ich hatte eine Menge Probleme, im Web nach Lösungen zu suchen, bis mir diese Idee einfiel.

2
GreeenMachin

Es ist ein Berechtigungsproblem, wenn IIS ausgeführt wird. Ich hatte dieses Problem und habe es auf diese Weise gelöst 

Ich bin auf Ordner gegangen 

C:\Windows\System32\config\SystemProfile  

und 

C:\Windows\SysWOW64\config\SystemProfile  

sind geschützte Systemordner, normalerweise haben sie die Sperre. 

Klicken Sie mit der rechten Maustaste-> Kartensicherheit-> Klicken Sie auf Bearbeiten-> Hinzufügen, um "Autenticadet User" hinzuzufügen und Berechtigungen zuzuweisen. 

An diesem Punkt ist alles gelöst, wenn Sie immer noch Probleme haben, versuchen Sie alle Berechtigungen an "Jeder" zu vergeben.

1
daniele3004

In meinem Fall bestand das Problem darin, die Kopfzeile als "Kopfzeile 1" zu formatieren, aber diese Formatvorlage war in dem Wort, das ich erhalte, nicht vorhanden, da es sich nicht um ein Office in englischer Sprache handelte.

0
Ugur Catak

Für alle, die immer noch an diesem Problem leiden, habe ich nur zwei Tage damit verbracht, das verdammte Ding aufzuspüren. Ich habe die gleiche Fehlermeldung erhalten, als es keine Zeilen in Dataset gab . Scheint offensichtlich, aber die Fehlermeldung ist sehr dunkel, daher 2 Tage. 

0
trailmax