2009-12-14 7 views
2

Peu importe ce que je fais, par exemple donner le droit au service réseau et au compte ASP.NET du dossier qui contient l'image, j'obtiens toujours cette erreur pour System.IO .File.Move. Quelqu'un sait quels autres comptes je peux manquer ici? Le service réseau est le compte qui exécute le pool d'applications sous lequel ce site est exécuté et j'ai donné à Network Service tous les droits sur le dossier entier.System.UnauthorizedAccessException: l'accès au chemin est refusé

J'ai tout essayé. J'ai donné au service réseau et au nom de machine \ aspnet des autorisations complètes dans le dossier qui contient ce fichier .jpg. Je teste ce code et ce mouvement sur localhost ... mon développeur.

+0

Je n'ai pas encore réussi à faire fonctionner ce système ... tout ce qui a été suggéré. – PositiveGuy

+0

trouvé ceci qui a fonctionné: http://codezest.com/archive/2009/12/14/system.unauthorizedaccessexception-access-to-the-path-is-denied.aspx – PositiveGuy

+0

Merci, merci, merci! J'ai travaillé sur ça pendant 3 heures maintenant sans succès. Changé mon pool d'applications pour utiliser le compte LocalSystem et cela a fonctionné comme un charme! – Doug

Répondre

0

Avez-vous essayé d'utiliser SysInternals FileMon maintenant partie de Process Monitor. Vous pouvez l'utiliser pour surveiller les événements d'accès au fichier ou l'accès refusé.

+0

oui, il dit que l'utilisateur qui essaie de créer/déplacer est mon compte de domaine, mais il a tous les droits sur ce dossier qui contient le fichier .jpg. Il a autant de droits possibles que je ne peux toujours pas voir pourquoi il empêche le problème de créer un fichier avec le File.Move. – PositiveGuy

+0

Vous pouvez essayer d'accorder au compte "Tout le monde" un accès complet à ce dossier, ou essayez de déplacer le dossier en tant que sous-dossier du dossier où résident les pages ASPX. Le second est évidemment moins un risque de sécurité. – GrayWizardx

+0

Aussi, sur quel système d'exploitation est-ce? – GrayWizardx

0

Cela peut être dû au fait que vous écrivez dans un autre dossier qui n'est pas sous l'application ASP.NET (par exemple, le dossier% TEMP% ou quelque chose de ce genre). Dans ce cas, le compte utilisé est IUSR_MACHINENAME qui représente un utilisateur anonyme.

Vous avez besoin de impersonate, utilisez un autre dossier ou donnez des droits d'écriture à IUSR_XXX (ce que je ne pense pas être une bonne idée) pour faire face à cela.

+0

Le compte d'ordinateur Asp.net qui emprunte l'identité de votre \\ nom_machine_local \ aspnet dispose déjà de toutes les autorisations. – PositiveGuy

+0

Est-ce que ISUR_localmachinename a aussi des permissions complètes? –

+0

ajouté cela, mais toujours le même problème. – PositiveGuy

0

Sur la machine hébergeant le lecteur partagé, assurez-vous de mettre les choses sous ces deux onglets:

  • Partage -> Permissions
  • sécurité

La plupart d'entre nous gérer l'onglet Sécurité pour que les choses IIS fonctionnent, mais c'était la première qui me donnait le même problème avec la méthode .MoveTo(). (Il pourrait lire, juste ne pas bouger).

Pour compliquer davantage les choses, j'ai également eu le répertoire partagé sous plusieurs noms - assurez-vous de vérifier les autorisations pour chaque nom partagé.

Questions connexes