J'ai récemment rencontré une erreur en essayant d'héberger mon site asp.net avec IIS. J'ai trouvé une solution que beaucoup ne jurent que par.
Solution:
- Ajouter IIS_IUSRS avec l'autorisation de lecture sur les fichiers du dossier
- Remplacez la méthode d'authentification IIS par BasicAuthentication
- rafraîchir le site Web. Ça va marcher
( http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html )
Que dois-je ajouter à mon fichier web.config? Je n'ai jamais eu à le modifier auparavant. Voici son contenu actuel:
<?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:
Erreur de configuration: impossible de lire le fichier de configuration en raison d'autorisations insuffisantes
Fichier de configuration: \? \ C: \ Users ***** \ Documents \ Visual Studio2010 \ WebSites \ PointsForTime \ web.config
asp.net
iis-7
file-permissions
Freesnöw
la source
la source
Réponses:
Il n'y a aucun problème avec votre web.config . Votre site Web fonctionne selon un processus. Dans iis, vous pouvez définir l'identité de ce processus. L' identité sous laquelle s'exécute le pool d'applications de votre site Web ( services réseau, système local , etc.) doit avoir l'autorisation d'accéder au fichier web.config et de le lire.
Mise à jour:
Cette réponse mise à jour est la même que ci-dessus, mais un peu plus longue et plus simple et améliorée.
Tout d'abord : vous n'avez rien à changer dans votre fichier de configuration. Ça va . Le problème vient des autorisations de fichiers Windows .
Ce problème se produit car votre application ne peut pas accéder au fichier web.config et le lire .
Rendez le fichier accessible au groupe IIS_IUSRS . Cliquez simplement avec le bouton droit sur web.config et cliquez sur Propriétés , sous l' onglet Sécurité , ajoutez IIS_IUSRS .
Alors, quelle est cette chose IIS_IUSRS?
Votre site Web est comme un fichier exe . Comme tout fichier exe, il doit être démarré par un utilisateur et s'exécute selon les autorisations attribuées à cet utilisateur.
Lorsque votre site est démarré dans IIS , le pool d'applications de votre site Web est associé à un utilisateur ( services réseau, système local , etc.) (et peut être modifié dans IIS)
Ainsi, lorsque vous dites IIS_IUSRS , cela signifie tout utilisateur ( services réseau, système local , etc.) que votre site utilise .
Et comme @Seph l'a mentionné dans le commentaire ci - dessous : Si votre ordinateur est sur un domaine , n'oubliez pas que le groupe IIS_IUSRS est un groupe local . Assurez-vous également que lorsque vous essayez de trouver cet utilisateur, vérifiez l'emplacement, il doit être défini sur ordinateur local et non sur un domaine d'entreprise.
la source
IIS_IUSRS
et de s'assurer que lorsque vous essayez de trouver cet utilisateur, vérifiez l'emplacement, il doit être défini sur l'ordinateur local et non sur un domaine d'entreprise.J'ai eu ce qui semblait être le même problème d'autorisations sur le
web.config
fichier.Cependant, mon problème était dû au fait qu'IIS ne chargeait pas le fichier de configuration car il 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: installez le module de réécriture.
J'espère que cela fera gagner quelques heures à quelqu'un.
la source
error:
:) +1 Parce qu'au lieu d'exiger SSL, j'ai réécrit l'URL en HTTPS en incluant quelqu'un lié sans https. Quelle énigme.Changer l'identité de ApplicationPoolIdentity à LocalSystem a fait le travail;).
J'utilise win7 64 avec IIS 7.5
en savoir plus sur l' identité du pool d'applications dans IIS 7.5 et gagner 7
la source
J'ai eu le même problème lorsque j'ai essayé de partager le dossier racine du site avec un autre utilisateur. Un dossier a perdu l'autorisation. J'ai donc suivi les étapes pour ajouter l'autorisation au groupe IIS_IUSRS comme suggéré par Afshin Gh. Le problème est que ce groupe n'était pas disponible pour moi. J'utilise Windows 7.
Ce que j'ai fait, je viens de changer quelques étapes:
Cela a fonctionné pour moi.
la source
C:\
ieC:\Dev
ouC:\Code
, etc. Le groupe de sécuritéAuthenticated Users
est accordé surC:\
et propagé aux dossiers enfants. Cependant, au niveau duC:\Users
dossier, cette propagation s'arrête. Ainsi, les développeurs comme moi qui hébergent leur code dans le dossier de base doivent accorder l'accèsAuthenticated Users
à ces dossiers racine IIS pour que IIS fonctionne.Vous n'avez rien à changer dans votre web.config.
Le problème est les autorisations du système de fichiers. Vos autorisations de fichier ne permettent pas à l'utilisateur IIS_IUSRS d'accéder à web.config (ou probablement à l'un des fichiers). Modifiez leurs autorisations de fichier dans les fenêtres pour permettre au compte IIS_IUSRS d'y accéder.
la source
Rendez le fichier accessible au groupe IIS_IUSRS . Cliquez avec le bouton droit sur votre web.config, développez les propriétés et sous l'onglet sécurité, ajoutez IIS_IUSRS. Accordez au groupe un accès en lecture / écriture.
Lorsque le groupe n'est PAS disponible, remplacez IIS_IUSRS par ComputerName \ IIS_IUSRS
la source
Accédez au dossier parent, cliquez avec le bouton droit et sélectionnez Propriétés . Sélectionnez l' onglet Sécurité , modifiez les autorisations et ajoutez . Cliquez sur Avancé et sur Rechercher maintenant . Sélectionnez IIS_IUSRS et cliquez sur OK puis à nouveau sur OK . Assurez-vous d'avoir coché Écrire . Cliquez sur OK et à nouveau sur OK .
Travail accompli!
la source
Lorsque vous accordez des autorisations à IIS_IUSRS, vous devez vérifier que dans la section IIS / Authentification de votre application Web, les informations d'identification d'authentification anonyme utilisent l'identité du pool d'applications et non IUSR.
la source
Pour une raison quelconque, votre web.config est défini en lecture seule. Décochez l'option en lecture seule du fichier web.config.
la source
J'avais besoin d'ajouter des autorisations à IUSR (en plus de ISS-IUSRS, comme d'autres l'ont suggéré). (Voir aussi: http://codeasp.net/blogs/raghav_khunger/microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unauthorized )
la source
J'ai utilisé subst pour créer un mappage de D: vers C: afin de conserver la même configuration que les autres développeurs de l'équipe. Cela m'a également donné les mêmes erreurs que celles décrites. La suppression de cela l'a corrigé pour moi.
la source
La solution acceptée ne me convenait pas. J'utilise un dépôt Git et il a été cloné dans le dossier suivant
J'ai créé un nouveau site Web IIS et l'ai pointé vers le chemin. Qui n'avait pas les autorisations iis_iusrs suggérées dans la solution acceptée. Lorsque j'ai ajouté les autorisations, cela ne fonctionnait toujours pas.
Il n'a commencé à fonctionner que lorsque j'ai accordé les autorisations suivantes au groupe «Utilisateurs» et que l'héritage a répercuté les autorisations sur web.config. Aurait probablement dû l'appliquer uniquement au web.config pour réduire la surface d'attaque.
la source
Nous avions un site Web fonctionnant avec une identité spécifique dans l'apppool, seulement après avoir donné à cet utilisateur un accès en lecture au dossier contenant le web.config, cela fonctionnerait. Nous avons suivi cela après avoir ajouté l'utilisateur "tout le monde" avec lecture et tout a bien fonctionné.
la source
Pour moi, l'erreur s'est produite lors du débogage sur ma machine locale et s'est avérée être liée au web.config de base, qui est initié par le .NET Framework lors de la compilation du site Web. Mon fichier C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config comportait un élément non reconnu (folderLevelBuildProviders). La correction de cela a corrigé l'erreur 500.19.
Voir ceci: IIS Manager ne peut pas configurer la compilation .NET sur les applications .NET 4
la source
La modification de l'identité du modèle de processus en LocalSystem a résolu ce problème pour moi. Vous pouvez trouver ce paramètre si vous faites un clic droit sur le pool d'applications et choisissez "Paramètres avancés". J'utilise IIS 7.5.
la source
Cliquez avec le bouton droit sur Web.Config => onglet Sécurité => bouton Modifier => bouton Ajouter => bouton avancé => bouton Rechercher maintenant => dans les résultats de la recherche, sélectionnez votre groupe (dans notre cas "IIS_IUSRS") => Ok => Ok => D'accord
la source
Cela nous est arrivé lorsque l' application IIS a un répertoire virtuel avec un chemin physique qui contient des barres obliques /au lieu de barres obliques inverses \. Cela a été accidentellement fait en utilisant une API de gestion PowerShell pour IIS au cours de notre processus de livraison continue.
Exemple de mauvaise configuration -
applicationHost.config
Assurez-vous que l'
physicalPath
attribut ne contient pas de barres obliques /, uniquement des barres obliques inverses\Exemple de configuration corrigée -
applicationHost.config
la source
C:\inetpub\MySite\\MyService
. Le changer en une seule barre oblique arrière a fonctionnéJ'ai résolu ce problème en ajoutant une autorisation de lecture au dossier pour l'utilisateur du pool d'applications (WIN SERVER 2008 R2): C: \ Windows \ System32 \ inetsrv \ config
Un peu d'histoire: Notre serveur a été piraté en utilisant une erreur classique où l'utilisateur de l'application avait plus d'autorisations qu'il le devrait (administrateur local).
Pour le corriger, nous avons créé un nouvel utilisateur de domaine qui ne disposait que d'autorisations sur le dossier d'application, avec les droits nécessaires minimum et l'avons affecté en tant qu'utilisateur du pool d'applications. que nous avons touché dans la question et c'était la solution à nos problèmes.
la source
Déplacez votre projet vers un lecteur autre que C: a fonctionné pour moi avec la même erreur.
la source
Cela peut se produire si votre application se trouve dans un répertoire virtuel et que le chemin d'accès aux fichiers est un lecteur mappé.
Si vous modifiez le chemin d'accès aux fichiers sur un lecteur local, cela le résoudra, si tel est bien votre problème.
la source
Toutes les réponses données sont valables et fonctionnent dans des circonstances différentes.
Pour moi, le redémarrage de Visual Studio a fonctionné.
la source
Je recevais également le "Impossible de lire le fichier de configuration en raison d'autorisations insuffisantes". Il s'avère que les restrictions ISAPI et CGI dans IIS pour ASP.NET 4.0 32 bits et 64 bits ont été définies pour être refusées. Les marquer tous les deux sur Autorisé a résolu mon problème.
la source
Les réponses ci-dessus ont été utiles, mais au cas où cela aiderait quelqu'un - j'ai eu ce problème exact, et il s'est avéré que j'étais (réseau Windows) partageant le dossier racine à partir duquel le site était hébergé. Nous avons tué le partage et ajouté la permission des utilisateurs de lire / exécuter et cela a fonctionné à nouveau très bien.
Je soupçonne que la part a foiré.
la source
Eu ce problème avec une application virtuelle. Toutes les autorisations ont été définies. IIS_IUSRS, AppPoolIdentity, puis a donné un accès complet à tout le monde. Rien n'a fonctionné. Apppool, site et IIS redémarrés, mais non.
Supprimé l'application virtuelle et l'ajoutée à nouveau à partir de zéro et il a commencé à fonctionner.
J'aimerais savoir ce qui l'a résolu.
la source
vérifiez si le fichier n'est pas marqué en lecture seule , malgré l'autorisation IIS_IUSRS, il affichera le même message.
la source
J'ai eu ce message d'erreur qui s'est avéré être dû au fait que mon dossier physique se trouvait sur un lecteur réseau par opposition au lecteur local. Il semble que les autorisations sur ces disques par défaut puissent être différentes. Par exemple, alors que l'emplacement du lecteur local autorisait les utilisateurs de l'ordinateur local, l'emplacement réseau ne l'a pas fait.
En outre, la réponse acceptée ne fonctionne pas dans un tel cas. Les utilisateurs locaux ou les utilisateurs IIS n'étaient pas disponibles pour attribuer des autorisations. La solution était de déplacer le dossier physique vers le lecteur local.
la source
J'ai eu le même problème et après avoir fait toutes les choses écrites ici comme réponses, il s'est toujours reproduit. La seconde moitié du problème était le fait que .NET était désactivé sous "Activer ou désactiver les fonctionnalités Windows"
la source
Parfois, s'il s'agit d'un nouveau serveur, vous devez configurer ou installer la fonctionnalité ASP.NET sur IIS pour qu'il puisse lire votre fichier web.config.
Dans mon cas, c'était la raison.
la source
Dans mon cas, j'essayais d'héberger des pages à partir d'un lecteur mappé (subst). Le problème est que le subst a été exécuté sous mon compte et l'utilisateur IIS n'est pas en mesure de voir le même lecteur
la source
J'ai donné la permission et utilisé ICACLS.exe mais cela n'a pas fonctionné. Ensuite, j'ai changé le chemin physique et cela a fonctionné avec succès.
(IIS 8.5 windows 2012 R2)
la source