Windows 7 .net Excel .SaveAs () Exception d'erreur de HRESULT: 0x800A03EC
De fond:
J'ai grillé mon ancien disque dur au travail et je suis en obtenir un nouveau. Avec qui je vais avoir à reconstruire ma machine. Mon manager a Windows 7 installé sur lui prêt d'un ordinateur portable que j'ai été en utilisant alors que ma machine est en dehors de la commission. Mais j'ai couru dans un problème.
Nous avons un bon nombre d'applications qui font usage de Microsoft.Bureau de.Interop.Référence Excel. J'ai eu quelques erreurs, mais j'ai été coincé sur depuis quelques jours (ma machine a effectivement subi la panne de disque dur après la première reconstruction) et ont été unnable de trouver une solution. J'ai cherché pour cette erreur, mais ne peut pas trouver quelqu'un à avoir ce problème sur Windows 7, bien que j'ai essayé d'autres correctifs pour Windows Server 2008 en vain.
Si je ne peux pas résoudre ce problème, je ne vais pas être en mesure d'utiliser Windows 7 et je voudrais savoir qu'avant de me reconstruire une machine uniquement pour avoir de l'essuyer et de recommencer (pour la troisième fois).
Problème:
Système d'exploitation: Windows 7 Entreprise
Message d'erreur: Exception de HRESULT: 0x800A03EC
Code:
Private m_xls As Microsoft.Office.Interop.Excel.Application
Private m_wkbk As Microsoft.Office.Interop.Excel.Workbook
Private m_wksht As Microsoft.Office.Interop.Excel.Worksheet
m_xls = New Application
m_xls.Visible = False : m_xls.DisplayAlerts = False
m_wkbk = m_xls.Workbooks.Open(Me.FilePath)
m_wksht = CType(m_wkbk.ActiveSheet, Worksheet)
'...Write some data...'
m_wkbk.SaveAs(Me.FilePath, XlFileFormat.xlWorkbookNormal, Missing.Value, Missing.Value, False, False, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value)
L'erreur se produit sur la ligne finale.
Ce que j'ai essayé jusqu'à présent:
- Changer le pool d'applications pour utiliser le
Compte NetworkService (il a été
'ApplicationPoolIdentity que j'
ne pouvais pas trouver dans la liste des utilisateurs dans
paramètres de sécurité). Le fait de donner les
Compte NetworkService d'accès complet
dans le dossier approprié. - Donnant NetworkService accès à tous les "Microsoft Excel Application" paramètres DCOMCNFG
- L'exécution de cette commande "appcmd config ensemble -section:asp -enableParentPaths:true", parce que c'est la seule autre chose que j'ai pu trouver
- À l'aide de l' .SaveCopyAs() qui a travaillé, mais il a causé les différentes erreurs
Je voulais juste voir si quelqu'un d'autre a rencontré ce ou pas, depuis Windows 7 est nouveau. Je peux aller avec Server 2008 mais je voudrais avoir quelques solides raisonnement derrière elle avant d'-je dire à mon manager, ça ne marchera pas.
Merci,
Jeff
source d'informationauteur Jeff Keslinke
Vous devez vous connecter pour publier un commentaire.
Remarque: Ce doit être résumés un peu comme c'est une compilation de tous les bugs que j'ai été faire sur notre wiki interne, mais je ne suis pas sûr de ce sous-ensemble de modifications apportées il travail donc je vais l'inclure tous les.
Solution:
Les changements suivants peuvent être un sur-ensemble de la façon d'aborder ce problème.
-Run DCOMCNFG.exe et accédez à la Composante "Services>Ordinateur>Mon Ordinateur".
-À droite, cliquez sur "Mon Ordinateur" et cliquez sur "Propriétés".
-Ouvrez le COM onglet Sécurité. Ajouter votre compte pour chacun des boutons ci ('Modifier les Limites..." et "Modifier les valeurs par Défaut..." boutons sous "Autorisation d'Accès" & "Lancer et Activer les Autorisations'). Donnez à votre compte de toutes les options d'accès. Cliquez sur "Appliquer" puis "OK".
Alors qu'ils sont encore dans DCOMCNFG développez le 'poste de travail' et le 'DCOM Config' dossier.
-Clic droit sur "Microsoft Excel Application" et sélectionnez "Propriétés".
-Sous l'onglet 'Sécurité' choisissez la "Personnaliser" option de Lancement et les Autorisations d'Activation " et "Autorisations de Configuration'. Pour les deux, cliquez sur " Modifier...". Donner l'accès à votre compte à tout.
Alors qu'ils sont encore dans les 'Propriétés' pour 'Application Microsoft Excel" aller à l'onglet 'Identité'.
-Sélectionnez l'Utilisateur Interactif".
-Cliquez sur "Appliquer" puis "OK".
-Redémarrez votre ordinateur.
-Essayez-le ci-dessous DCOMCNFG & ApplicationPoolIdentity changement.
-Exécutez l'invite de commande en tant qu'Administrateur.
-Naviguez jusqu'à c:\Windows\System32\inetsrv> et exécuter 'appcmd config ensemble -section:asp -enableParentPaths:true'
Alternativement, vous pouvez utiliser .SaveCopyAs() même si cela peut toujours pas résoudre le problème et va nécessiter des modifications du code.
DCOMCNFG Pour windows 7:
Cette erreur se produit sur Excel app = New Application (); " les appels
Ce lien explique comment résoudre le problème pour XP/Server 2003, mais peut être adapté à Windows 7: http://blog.crowe.co.nz/archive/2006/03/02/589.aspx
Je n'ai pas/ne pouvait pas trouver un "RÉSEAU" compte. Vous avez pour vérifier l'application de la piscine pour trouver ce que l'application est en cours d'exécution.
Pour le faire aller dans " Gestion de l'Ordinateur>les Services et les Applications>Internet Information Services>Application Piscines
Clic droit sur le pool d'applications et sélectionnez 'Paramètres Avancés'. Sous "Modèle de Processus>Identité", vous pouvez trouver le compte qu'il est en cours d'exécution en vertu de l'. Le mien était "ApplicationPoolIdentity' et dont je ne pouvais pas trouver donc je l'ai changé pour 'Service Réseau' comme Windows Server 2003.
Une fois que cela est défini exécuter DCOMCNFG.exe. Accédez à la Composante "Services>Ordinateur>Mon Ordinateur>DCOM Config'.
Trouvez et cliquez sur "Microsoft Excel Application" et sélectionnez "Propriétés".
Choisissez l'onglet "Sécurité". En vertu de Lancement et les Autorisations d'Activation "choisir" Personnaliser "et cliquez sur "Modifier".
Puis cliquez sur le bouton 'Ajouter...'.
Tapez le nom du compte approprié, dans ce cas, "Service de Réseau" et cliquez sur "Vérifier les Noms". Puis cliquez sur "OK".
Retour sur le Lancement et l'Activation des Autorisations de page en surbrillance le 'Service Réseau' compte et cochez la case "Lancement" et "Activation Locale des" cases à cocher. Puis cliquez sur 'OK'.
Quand j'ai été cette erreur, je pense que j'ai commencé à utiliser .SaveCopyAs au lieu de SaveAs. Je ne suis pas sûr de ce que d'autres erreurs de ce est la cause de vous, si vous pourriez préciser il y a peut-être quelque chose qui pourrait être compris de cette situation.
Aussi, une chose que vous faites est probablement la cause excel.exe pour rester en mémoire après le traitement d'un dossier. Voici un article qui montre la bonne façon de l'utiliser et de la libération COM interop objets (http://support.microsoft.com/kb/317109). C'est une douleur, mais il a travaillé pour moi en permettant l'utilisation de ces ressources pour être libérée avant l'application fermée.
Assurez-vous que vous êtes en cours d'exécution du programme (et EXCEL.EXE) en tant qu'administrateur, et le répertoire que vous êtes en train d'enregistrer n'est pas en "lecture seule" attribut.
Aussi, essayer de passer le chemin d'accès complet au lieu de simplement le nom de fichier.
Vous pouvez aussi essayer de passer du Système.De la réflexion.Manquant.La valeur au lieu d'en omettant les paramètres facultatifs.
Peut pas penser à autre chose maintenant. Espérons que cette aide.
ShdNx
La réponse ci-dessus par Jeff Keslinke fini de travailler pour moi. Vous avez aussi besoin de regarder à l'application de la piscine de votre Application à l'aide et assurez-vous que l'identité est correct et dispose d'un accès complet et des privilèges.
J'ai eu le même problème et trouvé une application crash d'erreurs avec le code d'Exception: 0xc0000005 dans des événements de windows. Web de recherche et de trouver la solution suivante sur le lienExcel 2010 Crash, code d'Exception: 0xc0000005 Renommer l'extension de fichier du fichier ouvert de xlsx à zip. La solution fonctionne pour mon cas.
Essayez de tourner sur l'ISS . Les détails sont mentionnés ici pour windows 7
http://helpdeskgeek.com/windows-7/turn-on-microsoft-internet-information-services-in-windows-7/