¿Para qué sirve la carpeta "Archivos temporales ASP.NET"?

157

Descubrí esta carpeta C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Filesy tengo algunas preguntas.

  • ¿Para qué utiliza ASP.NET esta carpeta y qué tipo de archivos se almacenan aquí?
  • ¿Cómo se almacena un archivo aquí y cuándo se actualiza?
  • ¿La carpeta necesita algún tipo de mantenimiento?
Alex Angas
fuente
9
En caso de que alguien esté buscando este directorio, parece que se ha movido C:\Users\[Username]\AppData\Local\Temp\Temporary ASP.NET Files.
Peter

Respuestas:

174

Estos son los que se conocen como carpetas de instantáneas.

Simplísticamente ... y lo digo en serio:

Cuando ASP.NET ejecuta su aplicación por primera vez, copia todos los ensamblados encontrados en la carpeta / bin, copia cualquier archivo de código fuente (que se encuentra, por ejemplo, en la carpeta App_Code) y analiza sus archivos aspx, ascx en archivos fuente c #. ASP.NET luego construye / compila todo este código en una aplicación ejecutable.

Una ventaja de hacer esto es que evita la posibilidad de que el # de DLL de ensamblado .NET (en la carpeta / bin) se bloquee por el proceso de trabajo ASP.NET y, por lo tanto, no se pueda actualizar.

ASP.NET vigila los cambios de archivos en su sitio web y, si es necesario, comenzará todo el proceso nuevamente.

Teóricamente, la carpeta no debería necesitar ningún mantenimiento, pero de vez en cuando, y solo muy raramente puede que necesite eliminar contenido. Dicho esto, trabajo para una empresa de alojamiento, ejecutamos hasta 1200 sitios por servidor compartido y no he tenido que tocar esta carpeta en ninguna de las 250 máquinas durante años.

Esto se describe en el artículo de MSDN Comprender la compilación dinámica de ASP.NET

Kev
fuente
Hola Kev, tengo un dll de com, que se está copiando en esta carpeta, dll necesita algunos archivos de configuración en su carpeta actual para poder ejecutarse. ¿Cómo puedo asegurarme de que también se copien en esta carpeta?
Rakesh
2
@robot - Probablemente ya haya encontrado la respuesta, pero por el bien de los futuros lectores, puede encontrar la ubicación "original" de la DLL usando Reflection y luego acceder a los archivos de configuración de esa manera. Ver stackoverflow.com/a/837501/211627
JDB todavía recuerda a Mónica el
2
Esta carpeta parece estar llenándose para mí debido a la integración continua: cada vez que se implementa el sitio (varias veces al día), se crea una nueva copia en la carpeta: 29 GB hasta ahora.
Andy Joiner
3
Como servicio de alojamiento de sitios web, tal vez nunca toque esta carpeta, pero para los desarrolladores es, con mucho, el mayor dolor de cabeza con el que tenemos que lidiar. He pasado muchos días enteros tratando de resolver lo que deberían ser problemas triviales, pero la combinación de la sombra de IIS copiar y los proyectos de estilo del sitio web de Visual Studio son una pesadilla para trabajar y tengo que borrar el contenido de esta carpeta varias veces al día.
bikeman868
8

El CLR lo usa cuando está compilando en tiempo de ejecución. Aquí hay un enlace a MSDN que explica más a fondo.

cgreeno
fuente
4

Ahí es donde asp.net pone ensamblajes compilados dinámicamente.

StingyJack
fuente