Compartir a través de


Acceso denegado de ASP.NET a los directorios de IIS

En estas notas del producto se describe lo que debe hacer si una solicitud a la aplicación ASP.NET devuelve el error "Acceso denegado al directorio DirectoryName". "No se pudo iniciar la supervisión de los cambios en el directorio".

Se aplica a ASP.NET 1.0 y ASP.NET 1.1.

ASP.NET V1 RTM ahora se ejecuta con una cuenta de Windows con menos privilegios, registrada como la cuenta "ASPNET" en un equipo local.

Es posible que en algunos sistemas bloqueados esta cuenta no tenga acceso de seguridad de lectura de forma predeterminada a los directorios de contenido de un sitio web, al directorio raíz de la aplicación o al directorio raíz del sitio web. En este caso, recibirá el siguiente error al solicitar páginas de una aplicación web determinada:

Screenshot of the browser view of an error page titled Access denied.

Para corregir esto, deberá cambiar los permisos de seguridad en los directorios adecuados.

En concreto, ASP.NET requiere acceso de lectura, ejecución y lista para la cuenta ASPNET para la raíz del sitio web (por ejemplo: c:\inetpub\wwwroot o cualquier directorio de sitio alternativo que haya configurado en IIS), el directorio de contenido y el directorio raíz de la aplicación para supervisar los cambios en los archivos de configuración. La raíz de la aplicación corresponde a la ruta de acceso de carpeta asociada al directorio virtual de la aplicación en la herramienta administración de IIS (inetmgr).

Por ejemplo, considere la siguiente jerarquía de aplicaciones en la carpeta wwwroot.

C:\inetpub\wwwroot\myapp\default.aspx

En este ejemplo, la cuenta de ASPNET necesita los permisos de lectura definidos anteriormente para contenido en el directorio myapp y wwwroot. Una sola ACL heredada en la carpeta raíz también se puede usar opcionalmente con ambos directorios si están anidados.

Para agregar permisos a un directorio, realice estos pasos:

  • Con el explorador de Windows, vaya al directorio.
  • Haga clic con el botón derecho en la carpeta del directorio y elija "Propiedades"
  • Vaya a la pestaña "Seguridad" en el cuadro de diálogo de propiedades
  • Haga clic en el botón "Agregar" y escriba el nombre del equipo seguido del nombre de la cuenta de ASPNET. Por ejemplo, en una máquina llamada "webdev", escribiría webdev\ASPNET y pulsaría "Aceptar".
  • Asegúrese de que la cuenta de ASPNET tenga marcadas las casillas "Leer y ejecutar", "Enumerar contenido de carpetas" y "Leer".
  • Pulse "Aceptar" para descartar el cuadro de diálogo y guardar los cambios.

Screenshot of the property dialog. O K is selected.

Si lo desea, estos cambios se pueden automatizar mediante scripts o la herramienta "cacls.exe" que se incluye con Windows. Para saber más sobre la cuenta de ASPNET, consulte el Documento de preguntas más frecuentes.

Si una aplicación web se basa en tener permisos de escritura o modificación en una carpeta o archivo concreto, se pueden conceder siguiendo el mismo procedimiento y marcando las casillas "Escribir" y/o "Modificar".

En las máquinas que permiten que todos o el grupo Usuarios lean acceso a estos directorios (que es la configuración predeterminada), no se encontrará ningún problema y no se requerirán los pasos anteriores.