2009-06-25 7 views
2

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

Répondre

3

C'est un bug connu (certains l'appellent une "fonctionnalité") avec IE et certains en-têtes HTTP sur SSL. Fondamentalement, si on dit au navigateur de ne pas stocker le fichier, ce qui se passe, c'est qu'il est essentiellement supprimé avant d'être servi à l'utilisateur. Vous voulez réellement leur permettre de le mettre en cache. Il s'agit d'un Microsoft support article à ce sujet. Et another.

+0

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. –

+0

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. –

0

Avoir vous avez essayé l'en-tête Content Disposition MIME? SSL, les pièces jointes et IE sont un mélange horrible.

+0

Oui j'utilise exactement cela –

Questions connexes