Système.Runtime.InteropServices.COMException (0x800A03EC)
Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs()
méthode fonctionne bien sur Windows server 2003 et aussi sur XP mais pas sur Windows server 2008. Je l'ai copié car il donne toutes les Dll et permissions
j'ai également essayé toutes les solutions proposées sur le net, telles que les paramètres de Culture et la permission DCOM.
Obtention d'erreur suivant:
Système.Runtime.InteropServices.COMException (0x800A03EC): Exception de HRESULT: 0x800A03EC
Microsoft.Bureau.Interop.Excel.WorkbookClass.SaveAs(Objet Nom De Fichier, Objet FileFormat, Mot De Passe D'Objet, Objet WriteResPassword, Objet ReadOnlyRecommended, Objet CreateBackup, XlSaveAsAccessMode AccessMode, Objet ConflictResolution, Objet AddToMru, Objet TextCodepage, Object TextVisualLayout, Object Local)
s'il vous Plaît aider ..!
6 réponses
Réponse Trouvée.......!!!!!!!
officiellement Microsoft Office 2003 Interop N'est pas supporté sur Windows server 2008 par Microsoft.
mais après beaucoup de permutations et de combinaisons avec le code et la recherche, nous sommes tombés sur une solution qui fonctionne pour notre scénario.
la solution est de colmater la différence entre la façon dont Windows 2003 et 2008 maintient sa structure de dossiers, car Office Interop dépend du dossier de bureau pour ouvrir/enregistrer fichier de manière temporaire. Le système 2003 héberge le dossier de bureau sous systemprofile qui est absent en 2008.
donc lorsque nous créons ce dossier en 2008 sous la hiérarchie respective comme indiqué ci-dessous; L'Interop office est en mesure de sauvegarder le fichier comme demandé. Ce dossier de bureau doit être créé sous
C:\Windows\System32\config\systemprofile
et
C:\Windows\SysWOW64\config\systemprofile
Cela a fonctionné pour moi...
vérifiez également si .NET 1.1 est installé parce que son nécessaire par Interop et ot préinstallé par Windows Server 2008
Ou vous pouvez également Utiliser SaveCopyas() la méthode ist juste prendre onargument que le nom de la chaîne)
Merci Les Gars..!
essayez ceci comme cela a fonctionné pour moi...
- Allez dans "Démarrer" > "Exécuter" et saisissez "dcomcnfg"
- Cela fera apparaître la fenêtre services de composants, développez "Racine de la Console" -> "Ordinateur" -> "configuration DCOM"
- trouver "Microsoft Excel Application" dans la liste des composants.
- clic Droit sur l'entrée et sélectionnez "Propriétés"
- allez à L'onglet" Identité " dans la boîte de dialogue Propriétés.
- sélectionner " l'interactive utilisateur."
courtoisie de Dernier paragraphe mentionné ici
une recherche sur Google révèle que vous avez potentiellement un fichier corrompu:
http://bitterolives.blogspot.com/2009/03/excel-interop-comexception-hresult.html
et que vous pouvez indiquer à excel à ouvrir de toute façon avec la CorruptLoad paramètre, avec quelque chose comme...
Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true);
je voyais cette même erreur en essayant de sauvegarder un fichier excel. Le code fonctionnait bien lorsque J'utilisais MS Office 2003, mais après avoir passé à MS Office 2007, j'ai commencé à le voir. Cela se produirait à chaque fois que je tenterais de sauvegarder un fichier Excel sur un serveur ou un partage de fichier à distance.
Ma solution, bien que rudimentaire, a bien fonctionné. Je viens de demander au programme de sauvegarder le fichier localement, comme sur le lecteur C:\ de l'utilisateur. Alors utilisez le "système".IO.File.Copy (File, Destination, Overwrite)" méthode pour déplacer le fichier sur le serveur. Vous pouvez ensuite supprimer le fichier sur le lecteur C:\.
Fonctionne très bien, et simple. Mais certes pas la plus élégante de l'approche.
Espérons que cette aide! J'avais beaucoup de mal à trouver des solutions sur le web jusqu'à ce que cette idée me vienne à l'esprit.