L'exécution du serveur a échoué (Exception de HRESULT: 0x80080005 (Co E SERVER exec FAILURE))

j'essaie de convertir A.fichier xls en un .le fichier xlsx du côté du serveur en utilisant Microsoft.Office.Interop.Excel.Workbook classe comme suit:

 workBook.SaveAs("FILENAME_HERE", XlFileFormat.xlOpenXMLWorkbook, Type.Missing, Type.Missing, Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Microsoft.Office.Interop.Excel.XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

et j'obtiens l'erreur suivante:

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)). : System.Runtime.InteropServices.COMException (0x80080005): Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
   at System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)
   at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)
   at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)
   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
   at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at CALLING_METHOD_IN_MY_LIBRARY_HERE...

le problème est que cette erreur ne se produit que sur le serveur de staging; sur ma machine locale, elle fonctionne très bien.

les Choses que j'ai essayé sur le serveur de test:

  1. **1) exécuter les services des composantes ouvertes de la dcomcnfg

2) Étendre Les Services De Composantes" - >" Ordinateur "- > "mon ordinateur" - > " la configuration DCOM "

3) Trouvez L'application "Microsoft Excel"."

4) droit d'ouvrir la boîte de dialogue Propriétés

5) cliqué sur L'onglet" Sécurité",

6) " les Permissions de lancement et D'Activation, les permissions de configuration, ont ajouté des permissions-Identity run sous Administrateur Utilisateur (cet utilisateur), utilisateur interactif et utilisateurs de lancement

7). Autorisations de lancement et d'activation + autorisations d'accès + Configuration Permissions = > ajouté IIS_IUSRS + Service réseau avec contrôle total**

2. changé la construction du projet qui convertit le .fichier xls sur "any CPU" à "x86" sur ma machine locale et publié cette bibliothèque sur le serveur.

Quelqu'un a-t-il trouvé comment régler ce problème? Je me bats sur fix this issue depuis 2 jours maintenant.

22
demandé sur Tamas Ionut 2014-02-27 11:52:04

5 réponses

en utilisant DCOM CNFG.EXE. L'ouvrir et aller à: Services de Composants -> Ordinateur -> poste de travail -> DCOM Config -> Application Microsoft Excel.

ouvrez les propriétés, sélectionnez L'onglet Identité et sélectionnez l'utilisateur interactif.

16
répondu Vladimir Shiyanov 2016-09-27 14:57:35

j'ai trouvé cet article qui parle plus de cette question en profondeur si cela aide, erreur "80080005 l'exécution du serveur a échoué (Exception de HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))" pourrait se produire pour les raisons suivantes:

  1. la charge CPU de la machine est élevée et le processus prend beaucoup de temps démarrer et ne parvient pas à exécuter le CoRegisterClassObjects () en moins de 120 secondes.
  2. le serveur COM ne s'enregistre pas pour la bonne classe ID.
  3. le serveur COM s'arrête et il y a une condition de course entre Co-Treateinstance et la partie d'arrêt du serveur COM.
  4. il y a un problème de sécurité dans la façon dont le serveur COM est démarré (cette page semble suggérer des mots de passe Mal orthographiés ou l'absence de "Login as Batch Job" privilège pour " Run As.."Les serveurs COM, mais quoi qu'il en soit, je vous suggère de vérifier à nouveau cette information pour votre spécifique de configuration)

https://blogs.msdn.microsoft.com/adioltean/2005/06/24/when-cocreateinstance-returns-0x80080005-co_e_server_exec_failure/

2
répondu ChiragMM 2018-02-01 12:08:19

le même problème a été résolu pour moi en "permettant l'interaction de bureau" pour le service. (en tomcat6w outil de configuration sur l'onglet connexion)

0
répondu Gabor 2014-06-10 14:03:03

j'ai réglé ce problème avec cette solution: clic droit sur Component Services / Computers/DCOM Config / Microsoft Word97-2003 Document propriétés/Onglet Général

définir le Niveau d'Authentification:Aucun

0
répondu Ghadir Farzaneh 2018-06-24 10:54:47

essayez d'ajouter du fil.Méthode Sleep, telles que la Thread.Sleep(2000) pour 2 secondes après le classeur.ouvrir et classeur.SaveAs deux méthodes. Si votre fichier Excel a beaucoup de formats, essayez de prolonger quelques secondes supplémentaires.

-3
répondu Robert 30005 2016-05-08 15:15:38