System.Runtime.InteropServices.COMException (0x800A03EC)

Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs() metoda działa dobrze na Windows server 2003, a także na XP, ale nie na Windows server 2008. Skopiowałem go tak, jak podano wszystkie Dll i uprawnienia

Wypróbowałem również wszystkie rozwiązania podane w sieci, takie jak ustawienia Kultury i uprawnienia DCOM.

Otrzymanie następującego błędu:

System.Runtime.InteropServices.COMException (0x800a03ec): wyjątek from HRESULT: 0x800a03ec

At

Microsoft.Biuro.Interop.Excel.WorkbookClass.SaveAs(Nazwa Pliku Obiektu, Object FileFormat, Hasło Obiektu, Object WriteResPassword, Object ReadOnlyRecommended, Object CreateBackup, XlSaveAsAccessMode AccessMode, Object ConflictResolution, Object AddToMru, Object TextCodepage, Object TextVisualLayout, Object Local)

Proszę o pomoc ..!
Author: daniele3004, 2010-12-10

6 answers

Znaleziono Odpowiedź.......!!!!!!!

Oficjalnie Microsoft Office 2003 Interop nie jest obsługiwany przez Microsoft Na Windows server 2008.

Ale po wielu permutacjach i kombinacjach z kodem i wyszukiwaniem, natknęliśmy się na jedno rozwiązanie, które działa na nasz scenariusz.

Rozwiązaniem jest zatkanie różnicy między sposobem, w jaki Windows 2003 i 2008 zachowuje swoją strukturę folderów, ponieważ Office Interop zależy od folderu na pulpicie dla pliku otwartego/zapisanego w sposób pośredni. Na 2003 system zawiera folder pulpitu pod systemprofile, którego nie ma w 2008 roku.

Więc kiedy tworzymy ten folder w 2008 roku w odpowiedniej hierarchii, jak wskazano poniżej; Office Interop jest w stanie zapisać plik zgodnie z wymaganiami. Ten folder pulpitu musi być utworzony pod

C:\Windows\System32\config\systemprofile

I

C:\Windows\SysWOW64\config\systemprofile

To mi pomogło...

Sprawdź również, czy. NET 1.1 jest zainstalowany ponieważ jest on potrzebny przez Interop i ot preinstalowany przez Windows Server 2008

LUB możesz również użyć metody SaveCopyas () i przyjąć onargument jako łańcuch nazwy pliku)

Dzięki Chłopaki..!

 47
Author: Sameer S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-15 10:10:18

Spróbuj tak, jak mi się udało...

  1. Przejdź do "Start" - > " Run "i wpisz" dcomcnfg "
  2. spowoduje wyświetlenie okna usług komponentów, rozwiń "Console Root" - > "Computers" - > "DCOM Config"
  3. Znajdź "aplikację Microsoft Excel" na liście komponentów.
  4. Kliknij prawym przyciskiem myszy na wpis i wybierz "Właściwości"
  5. Przejdź do zakładki "tożsamość"w oknie dialogowym Właściwości.
  6. Wybierz " użytkownik interaktywny."

Dzięki Uprzejmości Last paragraf wymieniony tutaj

 8
Author: Pratik Gaikwad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-18 20:10:50

Niektóre googlowanie ujawnia, że potencjalnie masz uszkodzony plik:

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

I że można powiedzieć excel, aby go otworzyć i tak z parametrem CorruptLoad, z czymś takim...

Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true);
 5
Author: Eamon Nerbonne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-15 10:06:11

Widziałem ten sam błąd podczas próby zapisania pliku excel. Kod działał dobrze, gdy używałem MS Office 2003, ale po aktualizacji do MS Office 2007 zacząłem to widzieć. Zdarza się to za każdym razem, gdy próbuję zapisać plik Excela na serwerze lub zdalnym udostępnieniu fie.

Moje rozwiązanie, choć elementarne, działało dobrze. Właśnie miałem program zapisać plik lokalnie, jak na dysku użytkownika C:\. Następnie użyj metody " System. IO. File. Copy (File, Destination, Overwrite)", aby przenieść plik do serwer. Następnie możesz usunąć plik na dysku C:\.

Działa świetnie i prosto. Ale co prawda nie jest to najbardziej eleganckie podejście.

Mam nadzieję, że to pomoże! Miałem mnóstwo problemów ze znalezieniem jakichkolwiek rozwiązań w Internecie, dopóki ten pomysł nie wpadł mi do głowy.

 2
Author: GreeenMachin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-26 07:38:59

To problem z uprawnieniami, gdy IIS jest uruchomiony Miałem ten problem i rozwiązałem go w ten sposób

Poszedłem na foldery

C:\Windows\ System32\config\SystemProfile

I

C:\Windows\SysWOW64\config\SystemProfile

Są chronionymi folderami systemowymi, zwykle mają blokadę.

Kliknij prawym przyciskiem myszy - > Card security - > kliknij Edytuj - > Dodaj unmente "Autenticadet User" i przypisz uprawnienia.

W tym momencie wszystko jest rozwiązane, jeśli nadal masz problemy, spróbuj nadać wszystkie uprawnienia "wszystkim"

 1
Author: daniele3004,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-28 10:36:57

Dla tych wszystkich, którzy wciąż doświadczają tego problemu, właśnie spędziłem 2 dni tropiąc to cholerstwo. Otrzymywałem ten sam błąd, gdy nie było wierszy w zbiorze danych. Wydaje się oczywiste, ale Komunikat o błędzie jest bardzo niejasne, stąd 2 dni.

 0
Author: trailmax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-29 12:51:26