Este es un tema que me traía de cabeza durante varios días y que no lograba solucionar.

Resulta que hemos colocado una aplicación Web en un servidor Windows 2003 de un cliente. En el directorio raíz de la aplicaicón había un par de archivos .exe que estaban ahí para ser descargados desde un enlace directo. Al intentar descargarlos desde Internet Explorer se quedaba el diálogo "flipado" mientras ponía "Obteniendo información del archivo...", y la descarga no comenzaba jamás.

La configuración del servidor no tenía nada raro. Sólo lo habitual en un IIS, así que no encontraba explicación. Además ocurría en TODOS los IE y en todas sus versiones (incluyendo la última que acaba de salir, la 7), así que no era un problema puntual por un index.dat corrupto o cosas típivcas similares. Un verdadero misterio.

El misterio aumentaba cuando veías que con otros navegadores (por ejemplo Firefox) los archivos bajaban sin problemas y se guardaban. Incluso si veías el tráfico que se generaba con un monitor de tráfico, lo cierto es que el archivo sí se estaba descargando por detrás pero IE parecía no enterarse y se quedaba colgado hasta que unos segundos más tarde daba un error.  !??!!

Probé a sustituirlos por ZIPs e incluso probé con otros tipos de archivos (PDF, DOC y demás) y no había manera. Con IE no bajaba ningún archivo y con Firefox sí :-?. Lo único que se conseguia descargar con Explorer eran páginas HTML, gráficos y páginas ASPX. Un misterio ya que no había motivo alguno. Incluso revisé los tipos MIME y estas cosas, pero nada.

La solución

Sorprendentemente el problema estaba en las cabeceras HTTP que enviaba el servidor. resulta que tenía activada la caducidad inmediata de contenidos para que no se hiciese caché de los elementos de la aplicación:

El caso es que, por lo visto, IE tiene un "bug" que hace que cuando recibe estas cabeceras para no almacenar en caché los archivos tampoco los guarda al disco duro. Por ese motivo no funcionaba. El caso es que, sólo con desmarcar esta opción, automáticamente empezaó a funcionar la descarga de todo tipo de archivos.

Como seguía queriendo que la caché funcionase para el resto de elementos, lo único que hice fue crear una carpeta para las descargas y desactivar la caducidad de contenido en ésta, dejándola activada en el resto del sitio.

En fin, que podía haber estado toda la vida y no encontrar el fallo. Espero que esto le disminuya la angustia al que lo lea si llega aquí haciendo una búsqueda sobre este asunto :-)

💪🏻 ¿Este post te ha ayudado?, ¿has aprendido algo nuevo?
Pues NO te pido que me invites a un café... Te pido algo más fácil y mucho mejor

Escrito por un humano, no por una IA