J'ai une application web ASP.NET l'ensemble du site est parcouru via HTTPS en utilisant un certificat commercial valide. Dans une partie de l'application, il est possible de télécharger une feuille de calcul Excel. Le téléchargement est initié à partir d'un POST (PostBack à partir d'un LinkButton)Obtenir IE6,7,8 pour télécharger de manière fiable des documents office sur ssl depuis notre site
La réponse est effacée (Response.Clear(), Response.BinaryWrite (octets [])) blah etc .. comme nous l'avons fait dans mille projets qui fonctionnent tous bien, les en-têtes de contenu corrects sont définis et tout. la seule différence ici est SSL mais je ne vois pas comment c'est lié. Oui, il ya beaucoup de liens sur les en-têtes de cache qui empêchent IE de mettre le fichier dans des fichiers Internet temporaires, alors le programme de bureau approprié peut être lancé pour l'ouvrir etc etc yadda ... J'ai lu tous ces fichiers. J'ai vérifié les en-têtes de cache avec fiddler et LiveHeaders (FF Extension) et pouvez confirmer "Cache: private;" est ce qui est envoyé dans la réponse du site de production et de mon environnement de développement local.
Si je configure un certificat SSL sur mon instance IIS locale et exécute le projet, je peux ouvrir ou enregistrer exactement la même feuille de calcul sans problème avec IE (je sais qu'il n'y a rien de mal dans le fichier de production sueur, quelle surprise!) Cependant, à partir du web-serveur de production IE6 dit l'hôte distant déconnecté et IE7 reste là en téléchargement jusqu'à la fin des temps (réel utile!) Gah je me déchire les cheveux
Je suis d'accord dans mes os, je pense que c'est la manipulation de la réponse par IE J'ai lu ces deux articles. Mais, les serveurs dev et prod envoient le même en-tête Cache et sur dev ça marche mais en prod no go. –
Je pense que je dois accepter qu'il n'y a pas de réponse correcte à cette question car cela dépend de beaucoup de variables d'environnement. Accepter cette réponse car elle a les liens les plus pertinents. –