2009-08-02 10 views
5

J'ai une application ASP.NET qui tente d'écrire des fichiers sur le serveur Web pendant l'exécution. Dans mon environnement de développement, cela fonctionne. Cependant, quand je le déployer sur le serveur de production, et j'exécuter le code, je reçois une erreur qui indique:ASP.NET + Accès au chemin refusé

"Access to the path 'C:\Inetpub\wwwroot\MyWebApp\DirToWriteTo\' is denied." 

Mon serveur de production est un Windows Server 2003 de la machine. L'application Web est configurée pour autoriser l'accès anonyme via le compte IUSR_TEMPLATE.

Qu'est-ce que je fais mal?

Merci!

Répondre

1

Le problème le plus probable est que votre utilisateur anonyme n'a pas accès en écriture à l'emplacement.

Ce que je ferais est de créer une entrée web.config pour l'emplacement que vous souhaitez écrire et utiliser cette clé de configuration en tant que votre répertoire en écriture. Cela vous permettra d'avoir une configuration séparée pour votre serveur de production et votre machine de développement, si nécessaire.

Ensuite, juste donner un accès en écriture au répertoire défini dans votre configuration à l'utilisateur IUSER_TEMPLATE, ou Thorarin dit le service de réseau , dans ce cas, vous devez mettre en place l'usurpation d'identité d'identité dans votre web.config afin que vous puissiez spécifiez l'utilisateur (sauf si vous configurez l'utilisateur via le pool d'applications). Cela devrait régler le problème.

+1

Seulement si 'Web.config' a un' 'dans sa section' '. Sinon, l'identité définie pour le pool d'applications est utilisée. Par défaut, c'est * Service réseau * (qui a un accès très limité) – Thorarin

+0

C'est vrai. Je n'y ai pas pensé au départ. Je mettrai à jour ma réponse pour l'inclure. –

1

Si vous avez Windows 2008 ou au-dessus, essayez de donner des autorisations d'écriture à IIS_IUSRS.

(service réseau a également travaillé pour moi dans le passé. D'après ce que je lis here, cela dépend du système d'exploitation du serveur.)

enter image description here

0

Dans mon cas, Visual Studio 2015 a changé est un projet existant IIS AppPool utilisateur à la valeur par défaut de DefaultAppPool, qui m'a donné des erreurs d'autorisation, des erreurs de configuration, des erreurs de fournisseur de rôle et des erreurs de référence nulles. Après avoir découvert cela et l'avoir modifié dans le pool d'applications sur lequel les autorisations de dossier étaient définies, les choses ont recommencé.

Questions connexes