2009-12-13 3 views
9

J'utilise VSTS 2008 + C# + .Net 3.5 + IIS 7.0. J'ai créé un nouveau site Web et mis un fichier html dans le répertoire. Et quand j'utilise la fonction de navigation dans le gestionnaire IIS pour parcourir le fichier html, j'ai rencontré l'erreur suivante, des idées ce qui ne va pas?Erreur d'accès non autorisé aux pages html dans IIS 7.0

BTW: Je suis très confus au sujet des erreurs non autorisées depuis que j'ai exécuté le processus de travail sous un compte d'administrateur. À partir du message d'erreur, je suis confus pourquoi la méthode d'ouverture de session est anonyme et n'utilise pas de compte d'administrateur?

HTTP Error 401.3 - Unauthorized 
You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server. 

Module IIS Web Core 
Notification AuthenticateRequest 
Handler StaticFile 
Error Cde 0x80070005 
Requested URL http://localhost:80/a.html 
Physical Path C:\test\simplehosttest\a.html 
Logon Method Anonymous 
Logon User Anonymous 
+1

avez-vous activé la navigation dans les répertoires? – mglmnc

+0

avez-vous activé le contenu statique/gestionnaire de fichiers statique lors de l'installation iis? – iwo

+0

Merci mglmnc, "avez-vous activé la navigation dans les répertoires" - comment vérifier? Je n'ai jamais fait ça avant. – George2

Répondre

17

C: \ test \ simplehosttest \ a.html

S'il vous plaît accorder IUSR compte les droits nécessaires sur ce fichier ou son dossier. Ensuite, l'erreur 401.3 disparaîtra.

+0

J'ai déjà défini le compte pour que le processus de travail soit administrateur, pourquoi le problème de permission persiste-t-il? L'administrateur devrait être plus puissant que l'IUSR? – George2

+0

J'ai essayé d'ajouter IUSR et ça marche, cool! Pourquoi utiliser l'IUSR pourrait-il résoudre mon problème? Cet utilisateur spécial est utilisé pour? – George2

+3

IUSR est utilisé comme compte d'utilisateur anonyme par défaut. Cela signifie que lorsque votre site est accessible de manière anonyme, IIS utilise en fait le compte IUSR comme compte de connexion pour tous les utilisateurs. Ensuite, vous devez accorder à IUSR les autorisations nécessaires sur les dossiers afin qu'il puisse y accéder. –

1

Fondamentalement, vous devez accorder l'accès en lecture au fichier à l'identité qui exécute votre apppool dans IIS. Sur le serveur 2008 et Vista cette identité (sauf si vous l'avez explicitement changé) serait "NT Authority \ Network Service" et sur windows7 c'est "IisAppPool \ AppPoolIdentity" (et ne demandez pas pourquoi ils l'ont fait sur win7, c'est un WTF si vous me le demandez)

+0

Je suis confus, il y a un nom d'utilisateur appelé "AppPoolIdentity"? – George2

+0

J'ai essayé d'ajouter l'autorisation de page html à l'utilisateur "IUSR", et cela fonctionne. Pourquoi utiliser l'IUSR pourrait-il résoudre mon problème? Cet utilisateur spécial est utilisé pour? – George2

+0

Merci, "WTF" signifie? – George2

0

J'ai eu le même problème, mais aucune des solutions proposées n'a résolu mon problème. J'essayais de déployer une application Web ASP.Net 4.0 avec Forms Authentication sur IIS7 sur Windows Server 2008. Ce qui résolvait le problème était de fournir des autorisations de lecture et de script aux gestionnaires, ce qui peut être accompli en ouvrant Handler Mappings et en sélectionnant "Edit Feature Autorisations "dans le menu de droite.

0

J'ai trouvé une autre cause de ce problème en ce que le site que je déployais m'a été envoyé dans un fichier zip. Pour une raison quelconque (peut-être parce que les fichiers ont été construits sur un Mac), les fichiers sont livrés avec le jeu de bits Encrypted for Security. Les fichiers apparaissent en vert dans l'Explorateur Windows.

13

Dans IIS 8.5 (nouvelle installation), mon pool d'applications était exécuté en tant qu'identité personnalisée et les fichiers étaient stockés dans un dossier en dehors de/inetpub/wwwroot. L'identité avait tous les privilèges de fichier appropriés, mais j'ai quand même une erreur acl. Après quelques difficultés, j'ai découvert que dans IIS Manager-> Mon site-> Authentification-> Authentification anonyme-> Modifier, l'identité utilisée pour l'authentification anonyme était définie par défaut pour un utilisateur spécifique (IUSR). Le configurer pour utiliser l'identité du pool d'applications l'a corrigé pour moi!

+1

Cela corrige immédiatement pour moi aussi, quelqu'un peut-il commenter sur pourquoi c'est par défaut IUSR au lieu de 'l'identité du pool d'applications'? –

Questions connexes