net for deploy aspx asp asp.net iis windows-8

for - IIS ApplicationPoolIdentity no tiene permiso de escritura para ''Archivos temporales ASP.NET''



iis windows 10 (7)

Al estar en C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319 intente ejecutar el comando aspnet_regiis.exe .

Por lo general, los permisos deben configurarse. Si Windows Add / Remove Programs sucede, o si se instalan nuevas versiones de .NET, estas cosas se restablecen un poco. Ejecutar el aspnet_regiis.exe debería ayudar allí.

Además, asegúrese de ejecutar Visual Studio como administrador.

Estoy intentando lanzar un sitio web desde un ''AppPool'' llamado ''SomeAppPool'' que usa ''ApplicationPoolIdentity'' y cuando lo hago, recibo el siguiente error cuando abro el sitio web:

La identidad actual (IIS_APPPOOL / SomeAppPool) no tiene acceso de escritura a ''c: / WINDOWS / Microsoft.NET / Framework / v4.0.30319 / Archivos temporales de ASP.NET''

Voy a lanzar el sitio web con ''Usar servidor web IIS local'' en Visual Studio 2012 (sin un depurador adjunto) en Windows 8.

Lo primero que noté es que la carpeta ''Archivos temporales de ASP.NET'' ni siquiera existe, por lo que no hay nada para establecer permisos de seguridad.

El segundo problema es que, incluso si hubiera una carpeta, ¿qué permisos establecería? Asumo que no debería tener que establecer permisos para cada usuario creado a través de ''ApplicationPoolIdentity''. ¿Derecha?

Las soluciones actuales que he visto simplemente sugieren configurar al "Servicio de red", pero esto parece romper el aislamiento del sitio web para el que se introdujo "ApplicationPoolIdentity".


En IIS7, hice clic derecho en el directorio virtual, eliminé la aplicación y la agregué nuevamente. Eso lo solucionó para mí.


Junto con las soluciones votadas, compruebe su espacio en disco y asegúrese de que haya suficiente espacio en disco disponible.

Acabo de toparme con este problema en uno de nuestros servidores de producción y estaba relacionado con el bajo espacio en disco.


Me encontré con esto y lo que hice fue crear una nueva cuenta, digamos que es "Webby".

En ISS, vaya a Configuración avanzada de su página y cambie "Credenciales de ruta física" a la cuenta Webby. El campo de Ruta arriba que tiene el directorio de la página web; abra esta carpeta en el Explorador y agregue Webby con permisos de modificación. En "Seguimiento de solicitudes fallidas", hay un directorio de registros; agregue modificar a eso también y configure "Habilitado" en verdadero (puede apagarlo más tarde, pero asegúrese de que funcione). En este punto, puedes probar tu sitio y definitivamente deberías obtener el mensaje de error, debido al usuario que estás usando.

La identidad actual (SU / Webby) no tiene acceso de escritura a ''C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / Archivos temporales ASP.NET''.

Ahora, para solucionar su problema, necesitará ir al directorio ''C: / Windows / Microsoft.NET / Framework64 / v4.0.30319 / Temporal ASP.NET Files'' y agregar Webby a eso también, de nuevo la modificación funciona.

La solución de usar una cuenta especial solo para sitios web es una buena idea. Es una cuenta real (no virtual como ApplicationPool) y Windows no se confunde (... tan fácilmente).

Espero que esto ayude.


Me enfrenté al mismo problema. Revisé la ruta c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/ buscando Temporary ASP.NET Files , pero no había ninguna carpeta con este nombre. así que creé una nueva carpeta de forma manual y la Temporary ASP.NET Files y el problema se solucionó.

Por lo tanto, asegúrese de que exista la ruta mencionada.


Resolví el error agregando el usuario que el grupo de aplicaciones usa al grupo IIS_IUSRS.


Esta respuesta al foro ASP.NET , no reconocida en su hilo, fue la solución para mí. También es de bajo impacto: no intenta volver a registrar IIS ni otorga al usuario privilegios peligrosos. Para resumir la respuesta:

  1. Abra una ventana de comando como administrador (Inicio / Programas / Accesorios, luego haga clic con el botón derecho sobre el Símbolo del sistema, luego seleccione "Ejecutar como administrador").
  2. Ingrese el siguiente comando:

    C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Aspnet_regiis.exe -ga domain/user

Sustituya su dominio y usuario por domain/user en el ejemplo anterior. Eso es todo lo que necesitó.

La documentación de Microsoft para Aspnet_regiis.exe está here . Tenga en cuenta que la documentación del -ga se refiere a un error en las versiones 3.5 y anteriores, donde no funcionaría con las cuentas locales. Si lo estoy leyendo correctamente, las cuentas de dominio son compatibles con todas las versiones y las cuentas locales son compatibles a partir de Framework 4.0.

Actualización 6 de junio de 2017 : para Windows 8 y superior, considere el comando dism lugar. Está cubierto en esta respuesta SO . Gracias a @codebrain por sugerir esto.

Actualización 7 de julio de 2015 : @Vertigo comentó amablemente que esta respuesta también funcionó para la cuenta de NETWORK SERVICE en .NET 2.0 en 2008R2 / 2012, por lo que mi descargo de responsabilidad sobre las cuentas locales anteriores a 4.0 puede ser incorrecto.

Si alguien más encuentra que esto funciona para una cuenta local bajo .NET 3.5 o anterior, no dude en editar mi respuesta o anotarla en los comentarios; Sería de gran ayuda para otros que puedan experimentar este mismo problema.