2009-10-01 6 views
1

J'ai désespérément besoin d'aide avec celui-ci. J'ai un site Web ASP classique dans IIS 5, où j'ai besoin de flux PDF aux utilisateurs. J'utilise ADODB.Stream pour générer des morceaux de données binaires et en utilisant response.BinaryWrite pour le diffuser au client. Le problème est maintenant qu'il existe une fonctionnalité connue dans IE qui définit l'en-tête Response CacheControl sur "no-cache" par défaut pour les sites SSL (https). D'où je reçois l'erreur type:...Télécharger le fichier sur HTTPS dans IE 5.5/IIS 5.0

« Internet Explorer ne peut pas télécharger Fichier.doc de ServerName

Internet Explorer n'a pas pu ouvrir ce site Internet Le site est indisponible ou ne peut pas être trouvé S'il vous plaît Réessayez plus tard."

J'ai défini Response.CacheControl = "private, doit-revalider, max-age = 3600" avant le streaming, mais il donne toujours l'erreur.

Remarque: Le même code fonctionne parfaitement dans tous les autres navigateurs comme firefox et netscape. J'utilise LiveHttpHeaders dans firefox pour voir que Response.CacheControl est automatiquement défini correctement dans firefox. Malheureusement, je ne peux pas installer Fiddler sur ma machine, mais je suppose que le problème est dû à l'en-tête par défaut IIS CacheControl = "no-cache" pour https

J'ai décoché l'option "Ne pas enregistrer les pages cryptées sur le disque" dans IE.

je besoin d'un moyen de contourner cela puisque l'option doit être mis à la disposition très bientôt aux utilisateurs sur Internet avec la technologie existante :(

Répondre

0

Vous pourriez être en mesure de sortir avec abandonner le support de Internet Explorer 5.5 comme it has less than .5% Il est si bas qu'ils ont arrêté de le suivre en juin 08 '

+0

Mais comment le faire fonctionner en 6/7/8 ou ce problème ne se produit pas dans les versions supérieures? – NeoBieKid

+0

Essayez IE 6 et faites le nous savoir. –

+0

Désolé, mais IE6 n'est pas installé dans le PC de test (pas sous mon contrôle). Cependant trouvé ce lien http://support.microsoft.com/kb/323308 Il dit ne fonctionnera pas avec IE 6 sp 1, et à la place d'utiliser un 'HREF' dont il semble qu'il faudrait lien 'http' - donc inutile ..did anciens sites web en ASP classique jamais offrir le téléchargement du fichier https? ne peut pas être - donc dere doit être un moyen – NeoBieKid

1

Commencez ici: http://blogs.msdn.com/ieinternals/archive/2009/10/02/Internet-Explorer-cannot-download-over-HTTPS-when-no-cache.aspx Pour voir une discussion plus complète sur ce problème, il est fort probable que vous envoyiez un ou plusieurs en-têtes interdisant la mise en cache

La déclaration ...

there is a known feature in IE which sets the Response CacheControl header to "no-cache" by default for SSL (https) sites

... est incorrect. Vouliez-vous dire "IIS"? Quelle version? Je n'ai jamais entendu parler d'une telle fonctionnalité.

Je ne sais pas pourquoi vous ne pouvez pas utiliser Fiddler sur la machine en question?

+0

Salut Eric, merci pour le blog très utile .. et oui, je voulais dire 'IIS' au lieu de 'IE' .. thx pour détecter une erreur d.La version de IIS est 5.0. A propos de Fiddler, il demande le framework .NET qui manque à mon pc, et il va me falloir un certain temps pour obtenir l'approbation de son installation (dats comment fonctionne mon entreprise) .En attendant j'avais espéré utiliser Quelque outil, mais qui n'a pas eu beaucoup de succès ... essayera de faire fonctionner Fiddler car il semble que j'espère seulement maintenant! – NeoBieKid

+0

btw, mon système d'exploitation est Win 2000, dans le cas où cela aide. – NeoBieKid

+0

Si vous ne pouvez pas utiliser fiddler, il existe d'anciens sniffers http comme proxomitron. – Dzejms

Questions connexes