System.Runtime.InteropServices.COMException (0x800A03EC)

Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs() metodo Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs() funziona correttamente su Windows Server 2003 e anche su XP, ma non su Windows Server 2008. L’ho copiato in quanto ha dato tutte le Dll e le autorizzazioni

Ho anche provato tutte le soluzioni fornite in rete, come le impostazioni Cultura e l’authorization DCOM.

Ottenere l’errore seguente:

System.Runtime.InteropServices.COMException (0x800A03EC): Eccezione da HRESULT: 0x800A03EC

a

Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs (Nome file object, FileFormat object, Password object, WriteResPassword dell’object, Oggetto ReadOnlyRecommended, Object CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object AddToMru, Object TextCodepage, Object TextVisualLayout, Object Local)

Per favore aiuto ..!

Risposta trovata ……. !!!!!!!

Ufficialmente Microsoft Office 2003 Interop non è supportato su Windows Server 2008 da Microsoft.

Ma dopo molte permutazioni e combinazioni con il codice e la ricerca, ci siamo imbattuti in una soluzione che funziona per il nostro scenario.

La soluzione consiste nel colbind la differenza tra il modo in cui Windows 2003 e 2008 mantengono la sua struttura di cartelle, poiché Office Interop dipende dalla cartella del desktop per l’apertura / salvataggio dei file in modo intermittente. Il sistema 2003 ospita la cartella desktop sotto systemprofile che è assente nel 2008.

Quindi quando creiamo questa cartella nel 2008 sotto la rispettiva gerarchia come indicato di seguito; l’ufficio Interop è in grado di salvare il file come richiesto. Questa cartella desktop deve essere creata sotto

C: \ Windows \ System32 \ Config \ systemprofile

E

C: \ Windows \ SysWOW64 \ config \ systemprofile

Questo ha funzionato per me …

Controlla anche se .NET 1.1 è installato perché è necessario da Interop e pre preinstallato da Windows Server 2008

Oppure puoi anche usare il metodo SaveCopyas () basta prendere un argomento come stringa del nome del file)

Grazie ragazzi..!

Prova questo come ha funzionato per me …

  1. Vai su “Start” -> “Esegui” e inserisci “dcomcnfg”
  2. Verrà visualizzata la finestra dei servizi del componente, espandere “Console Root” -> “Computer” -> “DCOM Config”
  3. Trova “Applicazione Microsoft Excel” nell’elenco dei componenti.
  4. Fare clic destro sulla voce e selezionare “Proprietà”
  5. Vai alla scheda “Identity framework” nella finestra di dialogo delle proprietà.
  6. Seleziona “L’utente interattivo”.

per gentile concessione dell’ultimo paragrafo menzionato qui

Alcuni googling rivela che potenzialmente hai un file corrotto:

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

e puoi dire ad Excel di aprirlo comunque con il parametro CorruptLoad, con qualcosa come …

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

Stavo vedendo lo stesso errore quando cercavo di salvare un file Excel. Il codice funzionava bene quando usavo MS Office 2003, ma dopo l’aggiornamento a MS Office 2007 ho iniziato a vederlo. Succederebbe ogni volta che provo a salvare un file Excel su un server o una condivisione remota.

La mia soluzione, sebbene rudimentale, ha funzionato bene. Ho appena fatto in modo che il programma salvi il file localmente, come nell’unità C: \ dell’utente. Quindi utilizzare il metodo “System.IO.File.Copy (File, Destinazione, Sovrascrittura)” per spostare il file sul server. Quindi è ansible eliminare il file nell’unità C: \.

Funziona alla grande, e semplice. Ma certamente non l’approccio più elegante.

Spero che questo ti aiuti! Ho avuto un sacco di problemi nel trovare soluzioni sul web fino a quando questa idea non mi è venuta in mente.

E ‘un problema di authorization quando IIS è in esecuzione ho avuto questo problema e l’ho risolto in questo modo

Sono andato su cartelle

C: \ Windows \ System32 \ config \ SystemProfile

e

C: \ Windows \ SysWOW64 \ config \ SystemProfile

sono cartelle di sistema protette, di solito hanno il blocco.

Fare clic con il tasto destro del mouse su> Sicurezza scheda-> Fare clic su Modifica-> Aggiungi untente “Utente Autenticadet” e assegnare le autorizzazioni.

A questo punto tutto è risolto, se hai ancora problemi prova a concedere tutte le autorizzazioni a “Tutti”

Per tutti quelli che hanno ancora riscontrato questo problema, ho passato 2 giorni a rintracciare la cosa sanguinosa. Stavo ottenendo lo stesso errore quando non c’erano righe nel set di dati. Sembra ovvio, ma il messaggio di errore è molto oscuro, quindi 2 giorni.