Recientemente encontré un error al tratar de alojar mi sitio asp.net con IIS. He encontrado una solución por la que muchos juran.
Solución:
- Agregue IIS_IUSRS con permiso de lectura en los archivos de la carpeta
- Cambiar el método de autenticación de IIS a autenticación básica
- actualizar el sitio web Funcionará
( http://vivekthangaswamy.blogspot.com/2009/07/aspnet-website-cannot-read.html )
¿Qué agrego a mi archivo web.config? Nunca he tenido que editarlo antes. Aquí está su contenido actual:
<?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>
Mi error es:
Error de configuración: no se puede leer el archivo de configuración debido a permisos insuficientes
Archivo de configuración: \? \ C: \ Users ***** \ Documents \ Visual Studio2010 \ WebSites \ PointsForTime \ web.config
asp.net
iis-7
file-permissions
Freesnöw
fuente
fuente
Respuestas:
No hay problema con su web.config . Su sitio web se ejecuta bajo un proceso. En iis puedes definir la identidad de ese proceso. La identidad que el grupo de aplicaciones de su sitio web ejecuta ( Servicios de red, Sistema local , etc.) debe tener permiso para acceder y leer el archivo web.config.
Actualizar:
Esta respuesta actualizada es la misma que la anterior, pero un poco más larga, más simple y mejorada.
En primer lugar : no tiene que cambiar nada en su archivo de configuración. Está bien . El problema es con los permisos de archivos de Windows .
Este problema se produce porque su aplicación no puede acceder y leer el archivo web.config .
Haga que el archivo sea accesible para el grupo IIS_IUSRS . Simplemente haga clic derecho en web.config y haga clic en propiedades , en la pestaña de seguridad , agregue IIS_IUSRS .
Entonces, ¿qué es esto de IIS_IUSRS?
Su sitio web es como un archivo exe . Al igual que cualquier archivo exe, debe ser iniciado por un usuario y se ejecuta de acuerdo con los permisos asignados a ese usuario.
Cuando su sitio se inicia en IIS , el grupo de aplicaciones de su sitio web se asocia con un usuario ( servicios de red, sistema local , etc.) (y se puede cambiar en IIS)
Entonces, cuando dice IIS_IUSRS , significa cualquier usuario ( Servicios de red, Sistema local , etc.) que su sitio se está ejecutando como.
Y como mencionó @Seph en el comentario a continuación : Si su computadora está en un dominio , recuerde que el grupo IIS_IUSRS es un grupo local . También asegúrese de que cuando intente encontrar a este usuario, verifique la ubicación que debe estar configurada en la computadora local y no en un dominio corporativo.
fuente
IIS_IUSRS
y para asegurarse de que cuando intente encontrar a este usuario verifique la ubicación, debe establecerse en la computadora local y no en un dominio corporativo.Tenía lo que parecía ser el mismo problema de permisos en el
web.config
archivo.Sin embargo, mi problema se debió a que IIS no pudo cargar el archivo de configuración porque contenía reglas de reescritura de URL y no había instalado el módulo de reescritura de URL de IIS en el nuevo servidor.
Solución: instale el módulo de reescritura.
Espero que ahorre a alguien unas horas.
fuente
error:
:) +1 Debido a que en lugar de requerir SSL, reescribí la URL a HTTPS en caso de que alguien esté vinculado sin https. Que enigma.Cambiar la identidad de ApplicationPoolIdentity a LocalSystem hizo el trabajo;).
Estoy usando win7 64 con IIS 7.5
Más información sobre la identidad del grupo de aplicaciones en IIS 7.5 y win 7
fuente
Tuve el mismo problema cuando intenté compartir la carpeta raíz del sitio con otro usuario. Alguna carpeta perdió el permiso. Así que seguí los pasos para agregar permiso al grupo IIS_IUSRS como lo sugiere Afshin Gh. El problema es que este grupo no estaba disponible para mí. Estoy usando Windows 7.
Lo que hice solo cambié algunos pasos:
Eso funcionó para mí.
fuente
C:\
ieC:\Dev
oC:\Code
, etc. El grupo de seguridadAuthenticated Users
se otorga en lasC:\
carpetas secundarias y se propaga a ellas. Sin embargo, en laC:\Users
carpeta, esta propagación se detiene. Por lo tanto, los desarrolladores como yo que alojan su código dentro de la carpeta de inicio deben otorgar accesoAuthenticated Users
a esas carpetas raíz de IIS para que IIS funcione.No tiene que cambiar nada en su web.config.
El problema son los permisos del sistema de archivos. Sus permisos de archivo no permiten que el usuario IIS_IUSRS acceda a web.config (o probablemente a cualquiera de los archivos). Cambie sus permisos de archivo en Windows para permitir que la cuenta IIS_IUSRS acceda a él.
fuente
Haga que el archivo sea accesible para el grupo IIS_IUSRS . Haga clic derecho en su web.config, expanda propiedades y, en la pestaña de seguridad, agregue IIS_IUSRS. Otorgue al grupo acceso de lectura / escritura.
Cuando el grupo NO esté disponible, reemplace IIS_IUSRS por ComputerName \ IIS_IUSRS
fuente
Vaya a la carpeta principal, haga clic derecho y seleccione Propiedades . Seleccione la pestaña Seguridad , edite los permisos y Agregue . Haga clic en Avanzado y en Buscar ahora . Seleccione IIS_IUSRS y haga clic en Aceptar y en Aceptar nuevamente. Asegúrese de tener el cheque Escribir . Haga clic en Aceptar y en Aceptar nuevamente.
¡Trabajo hecho!
fuente
Cuando concede permisos a IIS_IUSRS , debe verificar que en la sección IIS / Autenticación de su Aplicación Web, las Credenciales de Autenticación Anónima usen Identidad de Grupo de Aplicaciones y no IUSR.
fuente
Por alguna razón, su web.config está configurado como de solo lectura. Desmarque la opción de solo lectura del archivo web.config.
fuente
Necesitaba agregar permisos a IUSR (además de ISS-IUSRS, como otros han sugerido). (Ver también: http://codeasp.net/blogs/raghav_khunger/microsoft-net/2099/iis-7-5-windows-7-http-error-401-3-unauthorized )
fuente
Usé Subst para crear una asignación de D: a C: para mantener la misma configuración que otros desarrolladores del equipo. Esto también me dio los mismos errores que los descritos. Eliminar esto me lo arregló.
fuente
La solución aceptada no fue para mí. Utilizo un repositorio de Git y lo cloné en la siguiente carpeta
Creé un nuevo sitio web de IIS y lo señalé en el camino. Que no tenía los permisos iis_iusrs sugeridos en la solución aceptada. Cuando agregué los permisos aún no funcionaba.
Solo comenzó a funcionar cuando le di los siguientes permisos al grupo 'Usuarios' y la herencia en cascada los permisos a web.config. Probablemente debería haberlo aplicado solo a web.config para reducir el área de superficie de ataque.
fuente
Teníamos un sitio web ejecutándose con una identidad específica en el grupo de aplicaciones, solo después de darle a ese usuario acceso de lectura a la carpeta que contenía web.config funcionaría. Rastreamos esto después de agregar el usuario 'todos' con lectura y todo funcionó bien.
fuente
Para mí, el error apareció durante la depuración en mi máquina local y resultó estar relacionado con la base web.config, que inicia .NET Framework al compilar el sitio web. Mi archivo C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config tenía un elemento no reconocido (folderLevelBuildProviders). Arreglar esto solucionó el error 500.19.
Vea esto: IIS Manager no puede configurar la compilación .NET en aplicaciones .NET 4
fuente
Cambiar la identidad del modelo de proceso a LocalSystem solucionó este problema por mí. Puede encontrar esta configuración si hace clic derecho en el grupo de aplicaciones y elige "Configuración avanzada". Estoy ejecutando IIS 7.5.
fuente
Haga clic derecho en Web.Config => Tab Security => Button Edit => Button Add => Button Advanced => Button Find Now => En los resultados de búsqueda, seleccione su grupo (en nuestro caso "IIS_IUSRS") => Ok => Ok => Okay
fuente
Esto nos sucedió cuando la aplicación IIS tiene un directorio virtual con una ruta física que contiene barras diagonales en /lugar de barras diagonales inversas \. Esto se realizó accidentalmente utilizando una API de administración de PowerShell para IIS durante nuestro proceso de entrega continua.
Ejemplo de configuración incorrecta
applicationHost.config
Asegúrese de que el
physicalPath
atributo no contenga barras inclinadas /, solo barras invertidas\Ejemplo de configuración corregida -
applicationHost.config
fuente
C:\inetpub\MySite\\MyService
. Cambiarlo a una sola barra diagonal funcionóHe resuelto esto agregando permiso de lectura a la carpeta para el usuario del grupo de aplicaciones (WIN SERVER 2008 R2): C: \ Windows \ System32 \ inetsrv \ config
Un poco de historia: nuestro servidor ha sido pirateado usando un error clásico donde el usuario de la aplicación tenía más permisos de los que debería (administrador local).
Para solucionarlo, creamos un nuevo usuario de dominio que solo tenía permisos en la carpeta de la aplicación, con los derechos mínimos necesarios y lo asignamos como usuario del grupo de aplicaciones. de lo que encontramos en el problema y esta fue la solución a nuestros problemas.
fuente
Cambie su proyecto a otra unidad que no sea C: funcionó para mí con el mismo error.
fuente
Esto puede suceder si su aplicación está en un directorio virtual y la ruta a los archivos es una unidad asignada.
Si cambia la ruta de los archivos a una unidad local, esto lo resolverá, si ese es realmente su problema.
fuente
Todas las respuestas dadas son válidas y funcionan en diferentes circunstancias.
Para mí, reiniciar Visual Studio funcionó.
fuente
También recibí el mensaje "No se puede leer el archivo de configuración debido a permisos insuficientes". Resulta que las restricciones ISAPI y CGI en IIS para ASP.NET 4.0 32 bits y 64 bits se configuraron para denegar. Marcarlos a ambos como Permitidos solucionó mi problema.
fuente
Las respuestas anteriores fueron útiles, pero en caso de que esto ayude a alguien, tuve este problema exacto y resultó que estaba (redes de Windows) compartiendo la carpeta raíz desde la que estaba alojado el sitio. Eliminamos el recurso compartido, y agregamos el permiso de los Usuarios para leer / ejecutar y funcionó nuevamente bien.
Sospecho que la acción lo estropeó.
fuente
Tenía este problema con una aplicación virtual. Todos los permisos fueron establecidos. IIS_IUSRS, AppPoolIdentity y luego le dio acceso completo a Todos. Nada funcionó. Se reiniciaron el grupo de aplicaciones, el sitio y IIS, pero no se puede realizar.
Eliminó la aplicación virtual y la agregó nuevamente desde cero y comenzó a funcionar.
Ojalá supiera lo que lo resolvió.
fuente
compruebe si el archivo no está marcado como de solo lectura , a pesar del permiso IIS_IUSRS, mostrará el mismo mensaje.
fuente
Recibí este mensaje de error que resultó ser debido a que mi carpeta física se encuentra en una unidad de red en lugar de la unidad local. Parece que los permisos en tales unidades por defecto pueden ser diferentes. Por ejemplo, mientras que la ubicación de la unidad local daba permiso a los usuarios de la computadora local, la ubicación de la red no.
Además, la respuesta aceptada no funciona para tal caso. Los usuarios locales o usuarios de IIS no estaban disponibles para asignar permisos. La solución fue mover la carpeta física a la unidad local.
fuente
Tuve el mismo problema y después de hacer todo lo escrito aquí como respuesta, todavía se reprodujo. La segunda mitad del problema fue el hecho de que .NET se desactivó en "Activar o desactivar las características de Windows"
fuente
A veces, si se trata de un servidor nuevo, debe configurar o instalar la función ASP.NET en IIS para que pueda leer su archivo web.config.
En mi caso, esta fue la razón.
fuente
En mi caso, estaba tratando de alojar páginas desde una unidad asignada (subst). El problema es que el subst se ejecutó en mi cuenta y el usuario de IIS no puede ver la misma unidad
fuente
Le di permiso y usé ICACLS.exe pero no funcionó. Luego cambié la ruta física y funcionó con éxito.
(IIS 8.5 Windows 2012 R2)
fuente