Twitter Facebook RSS Feed

jueves, 18 de septiembre de 2008 a las 12:10hs por Gustavo Cantero (The Wolf)

Cuando accedemos por primera vez a una aplicación web hecha con .NET el IIS compila las páginas y guarda los assemblies generados (junto con los de la carpeta bin) en una carpeta temporal de cache, la cual está en el mismo lugar donde se instala el framework.  Rara vez sucede que el IIS no refresca esta cache, y cuando actualizamos nuestras páginas o assemblies, éstas no se ven reflejadas.  Para asegurarnos que esta actualización suceda debemos limpiar esta cache, y para hacerlo debemos seguir los siguientes pasos:

  • Detener el IIS, lo cual se puede hacer con el comando "IISReset /stop"
  • Eliminar el contenido de la carpeta «C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files»
  • Iniciar nuevamente el IIS, lo cual se puede hacer con el comando "IISReset"

Luego de esto, al ingresar en nuestra aplicación, el IIS vuelve a compilar el sitio y generar los archivos de cache.

11 comentarios »

  1. devhome dice:

    No me parece buena esta solución: no es recomendable estar parando el servidor IIS, sobre todo cuando se tienen varios sitios web publicos: preguntese: qué pasaria si algún usuario está realizando uns transacción de pagos on-line y usted para todo el IIS?. En mi caso he intentado parar solo el sitio que tiene problemas, pero esto no siempre permite borrar todos los temporales del sitio. Seguramente debe existir otra solución.

    • Si tienes un servidor que no puede detenerse ni un minuto por mantenimiento imagino que debes tener otro servidor de redundancia.
      Igual estaría muy bueno que si encuentras otra manera de eliminar estos temporales nos lo comentes para otros usuarios que tengan el mismo problema.
      Saludos y gracias!

  2. Estimados, creo que es la unica manera de poder eliminar estos temporales en nuestro computador de desarrollo, dado que los ambientes de desarrollo y de producción son distintos, para borrar en producción el IIS tiene otro comando que se llama reciclar el cual elimina todos los temporales. En nuestras maquinas locales no tiene ese comando el IIS ya que no trabajamos generalmente en un server.

    En resumen:
    1.- Para un equipo local de desarrollo solo existe esta solución.
    2.- Para poder eliminar estos temporales en un sitio en producción se debe
    reciclar.
    3.- La opción reciclar solo esta en los IIS de los Servidores.

    Saludos.,
    Cristian Cárdenas.

  3. Eduardo dice:

    Es un pedazo de código, Amigo sos un groso, Sabelo

  4. Feli dice:

    Hola Gustavo, he llegado hasta aquí dada mi desesperación y he leído tu «trukillo», pero la verdad es que no hay manera, estoy trabajando en local y en un server a 600 km. mi sorpresa es que necesito subir al server para probar por motivos de rutas físicas, permisos y todo eso. Bueno, pues la cache de los… no me regenera los cambios en programación, es más si elimino los archivos físicamente del server, siguen funcionando como si existieran, ¡eso si pasando de mis cambios!, incluso haciendo lo que explicas. ¿Se te ocurre, cual es mi diablo?

    Gracias de antemano, Feli

  5. Feli dice:

    buenas, de nuevo, no te rompas la cabeza, me estaba dejando de actualizar la carpeta bin, y claro las dll, no estaban actualizadas. al modificar esta carpeta también fuerzas a que se actualice la cache.

    Gracias igualmente

    • Ok, gracias por avisarme.
      Suerte!!!!

    • Juan dice:

      Buenas… he llegado hasta aquí buscando una solución a un problema semejante al que menciona Feli … obvio ya ha pasado tiempo desde el POST pero por desgracia ami me sucede a esta fecha… Al publicar mi proyecto con los cambios no se ven reflejados en el sitio…pareciera que no reconoce parte de los cambios hechos. Yo he sustituido desde los DLL’s hasta las páginas web, he borrado la carpeta por completo, cambiado de nombre al sito, etc. nada funciona, aplique el depurar la carpeta de temporales y ni eso.

      ¿qué más pudiera intentar?

  6. EmilianoLev dice:

    Tengo un problema seguramente con los archivos temporales. Borre la carpeta del proyecto pero lo sigue ejecutando, y en los archivos temporales en C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files veo archivos de varios proyectos que tengo, menos del que quiero eliminar, que puedo hacer?

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.