2012-04-03 30 views
8

Tengo problemas al implementar una aplicación web ASP en HostMySite. La aplicación se implementó previamente en sus servidores que se encuentran en diferentes plataformas sin problemas. Sin embargo, para el dominio y el servidor actuales, sigo obteniendo el error del servidor a continuación.¿Por qué mi aplicación web ASP intenta escribir en C: Windows Microsoft.NET Framework64 v4.0.30319 Archivos temporales ASP.NET?

Error de servidor en la aplicación '/ PropertyManagement'. La identidad actual (ADSAFESECUREWEB \ C116018-fhmonlinea) no tiene acceso de escritura a 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Archivos temporales ASP.NET'. Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Excepción: System.Web.HttpException: la identidad actual (ADSAFESECUREWEB \ C116018-fhmonlinea) no tiene acceso de escritura a 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Archivos temporales ASP.NET '.

Error de origen:

una excepción no controlada se generó durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción se puede identificar utilizando el seguimiento de pila de excepción a continuación. Sé que el código no intenta explícitamente escribir en el directorio temporal .NET, pero me preguntaba si la aplicación está de alguna manera usando ese directorio durante el tiempo de ejecución. El host siempre me dice que tengo que configurar mi aplicación para que no use el directorio temporal ya que no le proporcionarán acceso de lectura/escritura. ¿Puede alguien decirme por qué mi aplicación podría estar intentando usar este directorio y qué puedo hacer para configurarlo para usar un directorio diferente al que tengo acceso? Soy nuevo en el desarrollo de ASP y necesito ayuda. ¡Gracias!

Seguimiento de la pila:

[HttpException (0x80004005): La identidad actual (ADSAFESECUREWEB \ C116018-fhmonlinea) no tiene acceso de escritura a 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files'.] System.Web.HttpRuntime.SetUpCodegenDirectory (CompilationSection CompilationSection) 11650831 System.Web.HttpRuntime.HostingInit (HostingEnvironmentFlags hostingFlags, PolicyLevel PolicyLevel, appDomainCreationException Excepción) +323

[HttpException (0x80004005) : La identidad actual (ADSAFESECUREWEB \ C116018-fhmonlinea) no tiene acceso de escritura a 'C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files'.] System.Web.HttpRuntime.FirstRequestInit (contexto HttpContext) 11612256 System.Web.HttpRuntime.EnsureFirstRequestInit (contexto HttpContext) 141 System.Web .HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext context) +4842149

Información de versión: Microsoft .NET Framework Version: 4.0.30319; Versión de ASP.NET: 4.0.30319.1

Respuesta

23

El CLR copia todos sus ensamblajes en ese directorio y compila sus archivos .aspx/.asmx/etc y coloca la versión compilada en archivos temporales de ASP.NET.

Debe escribir para que su sitio pueda compilarse en tiempo de ejecución.

Editar: Aquí está an MSDN article explicándolo.

como se discute en los comentarios, si el proveedor se niega a dejar de escribir en ese directorio, puede anularla poniendo lo siguiente en su sección web.config, 'system.web':

<compilation tempDirectory="c:\path\to\directory\you\can\write" /> 
+1

Estamos alojando el sitio a través de HostMySite y me siguen diciendo que no permitirán el acceso de escritura a ese directorio. He estado discutiendo con ellos sobre este tema, entre otros durante días. ¿Recomiendas que trate de encontrar alguna documentación de MSFT que indique claramente su información anterior para demostrar que no están configurados correctamente? No he tenido más que problemas con este host desde que comenzaron a reclasificarse hace 6-8 meses. Naturalmente, la aplicación funciona bien en nuestro entorno de desarrollo. – Grasshopper

+0

La persona de soporte con la que está hablando probablemente no comprenda. Ese artículo de MSDN lo explica. Si lo que dicen es cierto, casi todo el sitio se romperá. Si ** le dan ** un directorio en el que puede escribir, puede configurarlo en 'web.config' [para usar ese directorio] (http://msdn.microsoft.com/en-us/library/ system.web.configuration.compilationsection.tempdirectory.aspx). –

+0

[Aquí] (http://msdn.microsoft.com/en-us/library/s10awwz0.aspx) un enlace mejor a la configuración 'tempDirectory'. Básicamente, harás '' dentro de tu elemento '' en 'web.config'. –

8

Añadir su la identidad del conjunto de aplicaciones al grupo IIS_IUSRS del servidor.

+0

Brilliant! Agregué control total a los archivos temporales de ASP.NET para mi usuario de la aplicación. Pero después de agregar el usuario de la aplicación de la aplicación al grupo IIS_IUSERS, pude eliminar el permiso de control total y todo funcionó perfectamente. ¡Muchas gracias! – rob

1

que tuvieron que establecer la identidad del grupo de aplicaciones para NetWorkService Y a continuación, añadir el usuario que se conecta a mi página web (el usuario que 'conectar como' en la configuración de IIS bajo Basic Settings para su sitio web) al grupo IIS_IUSRS

0

también puede volver a instalar asp.net, encontrar los pasos de abajo:

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ 
aspnet_iis -i 
1

tuve este error al configurar las credenciales ruta física (en Configuración avanzada) a la cuenta de mi grupo de aplicaciones.

En mi caso, la solución era restablecer las credenciales de ruta física a "Usuario de la aplicación" y corregir el error original utilizando this answer, es decir, restablecer la autenticación anónima a la identidad del grupo de aplicaciones, que para este sitio específico era IUSR. que no tenía acceso a la ruta de la aplicación (ya que estamos usando un usuario específico para la identidad del grupo de aplicaciones).

Cuestiones relacionadas