asp.net - write - usuario iis_iusrs




No se puede leer el archivo de configuración debido a permisos insuficientes (20)

Nota del editor: ¡Hacer lo que dice esta respuesta es DANGEROUS ! La cuenta LocalSystem es un ...

Cuenta completamente confiable, más que la cuenta del administrador. No hay nada en una sola casilla que esta cuenta no pueda hacer, y tiene el derecho de acceder a la red como la máquina (esto requiere Active Directory y otorgar los permisos de la cuenta de la máquina a algo)

Cambiar la identidad de ApplicationPoolIdentity a LocalSystem hizo el trabajo;).

Estoy usando win7 64 con IIS 7.5

más sobre la identidad del grupo de aplicaciones en IIS 7.5 y gana 7

Recientemente he encontrado un error al intentar alojar mi sitio asp.net con IIS. He encontrado una solución que muchos juran por.

Solución:

  1. Agregue IIS_IUSRS con permiso de lectura en los archivos de la carpeta
  2. Cambiar el método de autenticación de IIS a BasicAuthentication
  3. actualizar el sitio web. Funcionará

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

¿Qué agrego a mi archivo web.config aunque? 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


  1. Ir a IIS, (sitios)
  2. Haga clic derecho en el proyecto dentro de los sitios. introduzca la descripción de la imagen aquí

y haga clic en el permiso de edición.

  1. Ve a la seguridad.

  2. Haga clic en el botón Editar.

  3. haga clic en el botón Agregar. escriba COMPUTER_NAME \ IIS_USERS

    o

  4. haga clic en avanzar.

  5. Haga clic en el botón Buscar ahora.

    y hay opción para elegir. elija IIS_USERS y haga clic en ok ... ok .... ok.


Asegúrese de que su archivo web.config no esté marcado como Solo lectura


Cambiar la identidad del modelo de proceso a LocalSystem solucionó este problema para mí. Puede encontrar esta configuración si hace clic derecho en el grupo de aplicaciones y selecciona "Configuración avanzada". Estoy ejecutando IIS 7.5.


Ciertamente, este es un problema con los permisos. Tomé los siguientes pasos y funcionó para mí.

  1. Seleccione su sitio web o aplicación en la esquina izquierda. En la mayoría de los casos estaría bajo el sitio web predeterminado .
  2. haga clic en Configuración básica en la esquina derecha en IIS Manager 7 o superior.
  3. Haga clic en Conectar como botón.
  4. Utilice " usuario específico ", haga clic en el botón configurar.
  5. Ingrese su nombre de usuario y contraseña. como dominio \ nombre de usuario . para mí fue como ABC \ rrajkumar, ingrese la contraseña.
  6. reinicie IIS, navegue por su sitio web. Debería funcionar ahora.

Cuando otorga 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ónimas utilicen la identidad del grupo de aplicaciones y no IUSR.


En mi caso, estaba tratando de alojar páginas desde una unidad asignada (subst). El problema es que el subst se ejecutó bajo mi cuenta y el usuario de IIS no puede ver la misma unidad


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 \ . Esto se hizo accidentalmente utilizando una API de administración de powershell para IIS durante nuestro proceso de entrega continua.

Ejemplo de configuración incorrecta - applicationHost.config

<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
    <virtualDirectory path="/" physicalPath="C:\inetpub\MySite/MyService" />
</application>

Asegúrese de que el atributo physicalPath no contenga barras diagonales / , solo barras diagonales \

Ejemplo de configuración corregida - applicationHost.config

<application path="/MySite/MyService" applicationPool="MyAppPool" enabledProtocols="http">
    <virtualDirectory path="/" physicalPath="C:\inetpub\MySite\MyService" />
</application>

Haga que el archivo sea accesible para el grupo IIS_IUSRS . Haga clic derecho en su web.config, expanda las propiedades y, en la pestaña de seguridad, agregue IIS_IUSRS. Déle al grupo acceso de lectura / escritura.

Cuando el grupo NO esté disponible, reemplace IIS_IUSRS por ComputerName \ IIS_IUSRS


La solución aceptada no fue para mí. Uso un repositorio de Git y se clona en la siguiente carpeta.

c:\users\myusername\source\repos\myWebSite

Hice 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 todavía no funcionó.

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.


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 se ejecuta como ( 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, simple y mejorada.

En primer lugar : no tiene que cambiar nada en su archivo de configuración. Esta bien El problema es con los permisos de archivos de Windows .

Este problema ocurre porque su aplicación no puede acceder y leer el archivo web.config .

Hacer el archivo accesible al 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 esta cosa 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 se inicia su sitio en IIS , el Grupo de aplicaciones de su sitio web está asociado 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.) con el que se ejecute su sitio.

Y como @Seph mencionó 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 intenta encontrar a este usuario, verifique la ubicación, debe configurarse en una computadora local y no en un dominio corporativo.


No tienes que cambiar nada en tu 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 ella.


Por alguna razón, su web.config está configurado como solo lectura. Desmarque la opción de solo lectura del archivo web.config.


Recibí este mensaje de error que se debió a que mi carpeta física se encontraba 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 dio 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 los usuarios de IIS no estaban disponibles para asignar permisos. La solución fue mover la carpeta física a la unidad local.


También estaba recibiendo 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 de 32 bits y 64 bits se configuraron para denegar. Marcando ambos a Permitido solucioné mi problema.


Tenía este problema con una aplicación virtual. Todos los permisos fueron establecidos. IIS_IUSRS, AppPoolIdentity y luego dio acceso completo a Todos. Nada funcionó. Reiniciado apppool, sitio y IIS pero No ir.

Se eliminó la aplicación virtual, se volvió a agregar desde cero y comenzó a funcionar.

Ojalá supiera lo que lo resolvió.


Tuve el mismo problema cuando intenté compartir la carpeta raíz del sitio con otro usuario. Algunas carpetas perdieron el permiso. Así que seguí los pasos para agregar permiso al grupo IIS_IUSRS según lo sugerido por Afshin Gh. El problema es que este grupo no estaba disponible para mí. Estoy usando windows 7.

Lo que hice acabo de cambiar algunos pasos:

  1. Haga clic derecho en la carpeta principal (quien perdió el permiso),
  2. Propiedades => Seguridad => En "Nombres de grupos o usuarios:",
  3. Haga clic en Editar ...
  4. Se abrirá la ventana "Permiso para su carpeta".
  5. En "Nombres de grupos o usuarios:" presione AÑADIR ... btn,
  6. Escriba Authen y pulse Comprobar nombres,
  7. Verá el nombre completo del grupo " Usuarios autenticados "
  8. Presione ok => aplicar.
  9. Esto debería habilitar los privilegios de nuevo.

Eso funcionó para mí.


Tuve el mismo problema y después de hacer todas las cosas escritas aquí como respuestas, todavía se reproducía. La segunda mitad del problema fue el hecho de que .NET se desactivó en "Activar o desactivar las características de Windows"


Utilicé subst para crear una asignación de D: a C: para mantener la misma configuración que otros desarrolladores en el equipo. Esto también me dio los mismos errores que se describen. Eliminando esto lo arreglé para mí.


Vaya a la carpeta principal, haga clic con el botón derecho y seleccione Propiedades . Seleccione la pestaña Seguridad , edite los permisos y Agregar . Haga clic en Avanzado y en Buscar ahora . Seleccione IIS_IUSRS y haga clic en Aceptar y Aceptar de nuevo. Asegúrate de que tienes cheque de escritura . Haga clic en Aceptar y Aceptar de nuevo.

¡Trabajo hecho!





file-permissions