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??

40
demandé sur Shubh 2011-08-18 15:04:41

6 réponses

Essayez ce qui suit:

  1. 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).

  1. 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:

99
répondu Eric Bonnot 2018-01-10 10:14:01

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

12
répondu Nikhil 2014-07-04 15:28:30

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

1
répondu Amaury Bauzac 2015-06-23 09:12:45

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.

0
répondu user2617875 2013-07-25 08:54:02

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

0
répondu Florian Moser 2017-05-23 12:10:06

ç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.

-1
répondu wbaz 2012-12-31 19:56:23