2009-12-13 33 views
9

Estoy usando VSTS 2008 + C# + .Net 3.5 + IIS 7.0. Creé un nuevo sitio web y puse un archivo html en el directorio. Y cuando utilizo la función de exploración en el administrador de IIS para navegar por el archivo html, me encontré con el siguiente error, ¿alguna idea de lo que está mal?Error de acceso no autorizado a páginas html en IIS 7.0

BTW: Estoy muy confundido acerca de un error no autorizado ya que ejecuto el proceso de trabajo en la cuenta de administrador. Desde el mensaje de error, estoy confundido por qué el método de inicio de sesión es anónimo y no utiliza una cuenta de administrador.

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

¿Ha activado la exploración de directorios? – mglmnc

+0

¿Ha habilitado contenido estático/controlador de archivos estáticos cuando está instalado iis? – iwo

+0

Gracias mglmnc, "¿Ha habilitado la exploración de directorios" - cómo comprobar? Nunca hizo esto antes. – George2

Respuesta

17

C: \ test \ simplehosttest \ a.html

favor Conceder IUSR cuenta los derechos necesarios sobre este archivo o la carpeta. Entonces el error 401.3 desaparecerá.

+0

Ya he configurado la cuenta para que el proceso de trabajo sea administrador, ¿por qué todavía tiene un problema de permiso? ¿El administrador debería ser más poderoso que IUSR? – George2

+0

He intentado agregar IUSR y funciona, ¡genial! ¿Por qué usar IUSR podría resolver mi problema? Este usuario especial se usa para? – George2

+3

IUSR se usa como la cuenta de usuario anónimo predeterminada. Eso significa que cuando su sitio es anónimo accesible, de hecho, IIS utiliza la cuenta IUSR como cuenta de inicio de sesión para todos los usuarios. Luego debe otorgar permisos necesarios a IUSR en las carpetas para que pueda acceder a ellos. –

1

Básicamente debe otorgar acceso de lectura al archivo a la identidad que ejecuta su grupo de aplicaciones en IIS. En el servidor 2008 y Vista esa identidad (a menos que la hayas cambiado explícitamente) sería "NT Authority \ Network Service" y en windows7 es "IisAppPool \ AppPoolIdentity" (y no preguntes por qué lo han hecho en win7, es una WTF si me preguntas)

+0

Estoy confundido, hay un nombre de usuario llamado "AppPoolIdentity"? – George2

+0

He intentado agregar permisos de página html para el usuario "IUSR", y funciona. ¿Por qué usar IUSR podría resolver mi problema? Este usuario especial se usa para? – George2

+0

Gracias, "WTF" significa? – George2

0

Tuve el mismo problema, pero ninguno de los arreglos sugeridos resolvió mi problema. Estaba intentando implementar una aplicación web ASP.Net 4.0 con Autenticación de formularios en IIS7 en Windows Server 2008. Lo que resolvió el problema fue proporcionar permisos de lectura y script a los manejadores, lo cual se puede lograr abriendo Handler Mappings y luego seleccionando "Editar característica" Permisos "del menú de la derecha.

0

Encontré otra causa de este problema, ya que el sitio web que estaba implementando se me envió en un archivo comprimido. Por alguna razón (tal vez porque los archivos se crearon en una Mac), los archivos aparecen con el bit Encrypted for Security establecido. Los archivos se muestran en verde en el Explorador de Windows.

13

En IIS 8.5 (instalación reciente) hice que mi grupo de aplicaciones se ejecutara como una identidad personalizada y los archivos se almacenaran en una carpeta externa/inetpub/wwwroot. La identidad tenía todos los privilegios de archivo adecuados, pero aun así obtuve un error de acl.

Después de algunas dificultades descubrí que en IIS Manager-> Mi sitio-> Autenticación-> Autenticación anónima-> Editar la identidad utilizada para la autenticación anónima se estableció en un usuario específico por defecto (IUSR). ¡Configurarlo para usar la identidad del grupo de aplicaciones lo solucionó!

+1

Esto también lo soluciona inmediatamente, ¿alguien puede comentar por qué esto está predeterminado en IUSR en lugar de 'Application pool identity'? –

Cuestiones relacionadas