Microsoft Office Excel ne peut pas accéder au fichier "c:inetpubwwwrootTimesheetApp DataTemplate.xlsx'
j'ai mon code comme suit: -
Microsoft.Office.Interop.Excel.Application oXL = null;
Microsoft.Office.Interop.Excel.Sheets sheets;
Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.Workbooks.Add(System.Reflection.Missing.Value);
/*
* Here is the complete detail's about Workbook.Open()
*
* Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format,
* Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin,
* Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)
*/
Workbook workbook = excel.Workbooks.Open(
System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
Missing.Value, true, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value);
sheets = workbook.Worksheets;
maintenant pour la ligne: -
workbook = excel.Workbooks.Open(
System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Template.xlsx"),
Missing.Value, true, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value);
il est exécuté directement depuis visual studio (F5) mais quand j'essaie d'y accéder avec IIS il ne fonctionne pas. Erreur de lancer comme suit: -
Microsoft Office Excel ne peut pas accéder au fichier "c:inetpubwwwrootTimesheetApp_DataTemplate.xlsx". Il y a plusieurs raisons possibles:
• Le nom de fichier ou chemin d'accès n'existe pas.
• Le fichier est utilisé par un autre programme.
• Le classeur que vous tentez d'enregistrer le même nom qu'un classeur actuellement ouvert.
j'ai essayé le travail autour comme: -
- dossier et le fichier existent, donnant accès à L'IUSR_## (utilisateur IIS) et à L'utilisateur ASPNET dans le dossier où le fichier est.
- at Component Services (DCOM) donne accès à l'utilisateur approprié.
j'ai déjà donné toutes les permissions au dossier où le template(.XLSX) existe
des suggestions??
6 réponses
Essayez ce qui suit:
- créer le répertoire
C:\Windows\SysWOW64\config\systemprofile\Desktop
(pour la version 32 bits D'Excel/Office sur un ordinateur Windows 64 bits) ou
C:\Windows\System32\config\systemprofile\Desktop
(pour une version 32 bits de Office sur un ordinateur Windows 32 bits) ou une version 64 bits de Office sur un ordinateur Windows 64 bits).
- Pour le Bureau répertoire, ajouter contrôle total autorisations pour l' utilisateur concerné (par exemple dans Win7 & IIS 7 & DefaultAppPool set permissions for user IIS AppPool\DefaultAppPool ).
post Original avec la réponse:
permettez-moi de noter qu'à ma place, en ajoutant le c:\windows\syswow64\config\systemprofile\desktop le répertoire n'a pas fonctionné.
le fait est que WOW64 signifie Windows sur Windows64, ce qui signifie qu'il s'applique en fait pour les programmes 32 bits tournant sur le système d'exploitation 64 bits.
puisque J'ai 64 bits Excel installé, le répertoire approprié s'est avéré être le c:\windows\system32\config\systemprofile\desktop
je voudrais ajouter quelque chose à la réponse D'Eric Bonnot : La réponse a fonctionné en partie car j'ai travaillé sur un serveur IIS avec un utilisateur non-administrateur avec le powerpoint PIA .
j'ai remarqué que je ne pouvais pas ouvrir un fichier pptx si celui-ci avait un média (image par exemple).
le" hack "était d'ajouter aussi les droits de l'utilisateur windows (celui qui utilise la PIA) sur le systemprofile / AppData annuaire.
Espérons que cette aide
j'ai déjà essayé ce problème puis j'ai résolu.
Solution:
j'ai mis la pleine permission au dossier particulier(sous-dossier et les dossiers) et vérifié l'amende de travail.
j'ai emballé ma WCF dans un service Windows. Créer les dossiers de bureau l'a résolu pour moi sur une machine, mais pas sur une autre.
Mon problème est que mon Service Windows ne s'exécute pas sous un Utilisateur actif de la machine. Configurer le service pour qu'il fonctionne sous un utilisateur actif sur la machine a résolu ce problème pour moi jusqu'à présent.
uniquement la combinaison de
- Dossier Bureau Existant
- Service tournant sous un compte d'utilisateur réel
ça marche pour moi.
cet article m'amène à la solution complète: ne peut pas accéder au fichier excel
ça fonctionne
excel.exe / safe
cela ne donne pas et la même erreur que le démarrage régulier d'excel
excel.exe / automation
cela se produit également pour toutes les applications MS Office 2007 pour tout fichier réseau. L'accès aux fichiers locaux est très bien.