288 votes

Ne peut pas lire le fichier de configuration en raison de l'insuffisance des autorisations

J'ai récemment rencontré une erreur en essayant d'héberger mon asp.net site avec IIS. J'ai trouvé une solution que beaucoup ne jurent que par.

Solution: 1. Ajouter IIS_IUSRS avec l'autorisation de Lecture sur les fichiers dans le dossier 2. Changement de méthode d'authentification IIS pour BasicAuthentication 3. actualiser le site. Il fonctionnera

(http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html)

Que dois-je ajouter à mon site web.fichier de config? Je n'ai jamais eu à le modifier avant. Voici son contenu:

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
    <connectionStrings>
  <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True"
   providerName="System.Data.SqlClient" />
 </connectionStrings>
 <system.web>
  <compilation debug="true" strict="false" explicit="true" targetFramework="4.0"/>
    </system.web>
</configuration>

Mon erreur est:

Config Error:   Cannot read configuration file due to insufficient permissions
Config File:    \\?\C:\Users\*****\Documents\Visual Studio2010\WebSites\PointsForTime\web.config

455voto

Afshin Gh Points 2774

Il n'y a pas de problème avec votre site web.config. Votre site web s'exécute dans un processus. Dans iis, vous pouvez définir l'identité de ce processus. L' identité , votre site web du pool d'applications s'exécute (Services Réseau, Système Local, Etc. ...), doivent avoir l'autorisation d'accéder et de lire web.fichier de configuration.

Mise à jour:

Cette mise à jour de la réponse est la même que ci-dessus, mais un peu plus de temps et une simplification et d'une amélioration.

Tout d'abord: vous n'avez pas à changer quelque chose dans votre fichier de configuration. C'est OK. Le problème, c'est avec windows autorisations de fichier.

Ces problèmes se produit parce que votre application ne peut pas accéder et lire web.config fichier.

Rendre le fichier accessible à IIS_IUSRS groupe. Juste à droite, cliquez sur web.config et cliquez sur propriétés, en vertu de sécurité onglet, ajouter IIS_IUSRS.

Quel est donc ce IIS_IUSRS chose?

Votre site web est comme un exe fichier. Tout comme n'importe quel fichier exe, il devrait être lancé par un utilisateur et il fonctionne selon les autorisations attribuées à l'utilisateur.

Lorsque votre site est lancé dans IIS, l'Application de la Piscine de votre site web est associé à un utilisateur (Services Réseau, Système Local, Etc. ...) (et peut être modifié dans IIS)

Donc quand vous dites que IIS_IUSRS, cela signifie que tout utilisateur (Services Réseau, Système Local, Etc. ...) que votre site est en cours d'exécution.

Et comme @Eerh mentionné dans le commentaire ci-dessous: Si votre ordinateur est dans un domaine, n'oubliez pas que IIS_IUSRS groupe est un groupe local.

65voto

Ahmad Points 4329

De changer l'Identité de ApplicationPoolIdentity à LocalSystem a fait le travail ;).

J'utilise win7 64 avec IIS 7.5

plus sur Identité du Pool d'applications IIS 7.5 et win 7

enter image description here

52voto

Jarrod Points 60

J'ai eu ce qui semblait être le même problème d'autorisations sur l' web.config le fichier.
Cependant, mon problème a été causé par IIS échec de charger le fichier de config car elle contenait des règles de réécriture d'URL et je n'avais pas installé le module de réécriture d'URL IIS sur le nouveau serveur.

Solution: Installer le module de réécriture.
L'espoir qui sauve quelqu'un quelques heures.

17voto

Erik Funkenbusch Points 53436

Vous n'avez pas à changer quoi que ce soit dans votre site web.config.

Le problème est d'autorisations de système de fichiers. Votre fichier d'autorisations ne permettent pas l'IIS_IUSRS utilisateur d'accéder au web.config (ou probablement l'un des fichiers). Modifier leurs autorisations de fichier dans windows pour permettre à l'IIS_IUSRS compte pour y accéder.

14voto

Quinny Points 109

Aller au dossier parent, droit de la souris et sélectionnez Propriétés. Sélectionnez le Sécurité onglet, modifiez les autorisations et les Ajouter. Cliquez sur Avancé et de le Trouver Maintenant. Sélectionnez IIS_IUSRS et cliquez sur OK et OK de nouveau. Assurez-vous que vous avez vérifier Écrire. Cliquez sur OK et OK de nouveau.

Travail de fait!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: