Comment corriger "Microsoft Excel ne peut pas ouvrir ou enregistrer d'autres documents"
Je cours C# ASP.NET 4.5 application web sur Windows 7 64-bit en utilisant IIS 7.5. Le pool d'applications qu'il utilise a le nom "ASP.NET v4.0' et son identité est L'Identitépolaire D'application. L'application utilise MS Office Interop (Microsoft Excel 14.0 Object Library).
À la ligne wBook = wBooks.Add(Missing.Value);
, il génère l'erreur suivante:
Microsoft Excel ne peut pas ouvrir ou enregistrer d'autres documents car il n'est pas assez de mémoire disponible ou d'espace disque.
u2022 pour rendre plus de mémoire disponible, fermez les classeurs ou les programmes que vous n'avez plus besoin.
u2022 pour libérer de l'espace disque, supprimez les fichiers dont vous n'avez plus besoin disque que vous enregistrez.: Microsoft.Bureau.Interop.Excel.Classeur.Ajouter(Modèle D'Objet)
1) j'ai donné le compte IIS apppoolASP.NET v4.0 contrôle total sur L'Application MS Excel dans la Configuration DCOM.
2) j'ai donné IIS apppoolASP.NET v4.0 contrôle total "C:WindowsSysWOW64configsystemprofile' et a créé un dossier de bureau dedans.
3) je dois continuer à utiliser Interop mais ce n'est pas recommandé.
4) L'application fonctionne très bien sur Windows Server 2003/Windows XP 32-bit.
5) MS Office 2010 (64 bits, version d'essai) est installé sur la machine.
6) je préférerais ne pas changer l'application. l'identité du pool, de L'Identitépolaire de L'application au Service réseau, etc.. ApplicationPoolIdentity est l' nouveau type D'identité dans IIS 7 et il est recommandé.
cela fonctionne très bien si je sélectionne 'Interactive User' (je me suis connecté en tant qu'administrateur) dans la Configuration DCOM, mais cela cause d'autres problèmes. Je dois utiliser "Lancer L'utilisateur" qui est ASP.NET v4.0. Donc, on dirait que c'est un problème d'autorisation.
s'il vous Plaît aider. Remercier.
4 réponses
clic Droit sur le fichier avec l'explorateur de fichiers, sélectionnez Properties
, puis General
onglet et cliquez sur le Unblock
bouton. Ce message d'erreur est très trompeur.
allez à cette clé sur L'Éditeur du registre (Run | Regedit) HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
touche Cache à quelque chose comme C:\Windows\Temp
Mon problème similaire a été résolu comme ça.
Cordialement,
Ripley
j'ai eu ce même problème, il n'y avait pas de problème de mémoire dans ma machine serveur, finalement j'ai pu le corriger en suivant les étapes
- dans votre serveur d'hébergement d'applications, allez à ses "Component Services"
3.Trouvez "Microsoft Excel Application" sur le côté droit.
4.Ouvrez ses propriétés par clic droit
5.Sous l'onglet Identité, sélectionnez l'option utilisateur interactif et cliquez sur Ok. bouton.
Vérifier encore une fois. Espérons que cela aide
NOTE: mais maintenant vous pouvez vous retrouver avec une autre erreur de communication "récupérant l'usine de classe COM pour component...". Dans ce cas, il suffit de définir L'identité de cet utilisateur et d'entrer le nom d'utilisateur et le mot de passe d'un utilisateur qui dispose de droits suffisants. Dans mon cas, j'ai entré un utilisateur de power user group.
Test comme ceci.Parfois, le problème d'autorisation.
cmd => dcomcnfg
Cliquez sur
services de Composants >Calcule >poste de travail>Dcom config> et sélectionnez doux micro Application Excel
clic droit sur l'Application Microsoft Excel
Propriétés>Donner Asp.net Permissions
Sélectionner l'Identité de la table >Sélectionnez l'utilisateur interactif >sélectionnez ok