Je suis en train de migrer une série de sites Web d'un serveur IIS5 existant vers un tout nouveau serveur Web IIS7. Une des pages tire un fichier de données à partir d'un blob de la base de données et le sert à l'utilisateur final: testez cela dans la nouvelle installation IIS7, je reçois une erreur "Réinitialisation de la connexion" dans Internet Explorer et Firefox. Le document est servi correctement si l'en-tête de longueur de contenu est supprimé (mais l'utilisateur n'obtiendra pas une barre de progression utile). P> Des idées sur la manière de corriger cela; Que ce soit une option de configuration de serveur ou via le code? p> edit 1: strong> a fait un peu plus d'essai et d'erreur. Les demandes réussiront si les deux "activer la mise en mémoire tampon" et "activer le codage chund" sont faux. Si l'une ou l'autre est activée, l'erreur se produit. P> edit 2: strong> Test d'essai et d'erreur; s'avère que les fichiers texte fonctionneront bien avec le script; Seuls les fichiers binaires (images, pdfs, etc.) échoueront. Toujours complètement désemparé autrement. P> p>
3 Réponses :
Comme déjà mentionné quelque part ailleurs: http://fr.wikipedia.org/wiki/chunked_transfer_coding p>
Il utilise l'en-tête de réponse HTTP STRY> CODING STRT> à la place de l'en-tête de longueur de contenu, que le protocole aurait autrement exiger. Étant donné que l'en-tête dans IIS7 Ceci est activé par défaut:
http://technet.microsoft.com/en-us/library/cc730855 (v = ws.10) .aspx p>
Pour activer le codage de transfert HTTP 1.1 Chunked pour le World Wide Web
Service de publication, utilisez la syntaxe suivante: P>
AppCMD SET CONFIG / Section: ASP / ENBRABECHUCKEDENDENDING: TRUE | FALSE P>
True Active HTTP 1.1 Encodage de transfert chund
HTTP 1.1 Encodage de transfert chunté. La valeur par défaut est vraie. P>
blockQuote>
Nous avons eu le même problème, notre solution: Supprimer Addheader "Longueur de contenu" P>
Après avoir migré de XP Pro vers Server 2008 R2, l'erreur s'est produite. Je devais retirer l'en-tête du contenu pour résoudre le problème.
Même problème et solution ici. Pour ce que cela vaut, vous pouvez modifier la "longueur de contenu" en "taille de contenu" et fonctionnera, bien que le client puisse ne pas reconnaître l'en-tête (maintenant obsolète).
Il y a deux options pour le faire fonctionner:
sortie L'en-tête "Taille de contenu" au lieu de "longueur de contenu". Remarque Tous les clients ne le reconnaîtront pas, mais au moins cela fonctionne. P> li>
(préféré) Retour Réponse.buffer à true, vous pouvez utiliser l'en-tête "Longueur de contenu" et gérer le "Chunking" vous-même (ne taxez donc pas le tampon de mémoire ASP): P> ol>
Le suivant fonctionne pour moi sur IIS7 et semble envoyer correctement les informations sur la taille du fichier sur le navigateur. P>
Response.Buffer = True Response.ContentType = "application/pdf" Response.AddHeader "Content-Disposition", "attachment; filename=""yourfile.pdf""" Set objStream = Server.CreateObject("ADODB.Stream") objStream.Open objStream.Type = adTypeBinary objStream.LoadFromFile "yourfile.pdf" Response.AddHeader "Content-Length", objStream.Size ' Send file in chunks. ' lByteCount = 0 lChunkSize = 100000 While lByteCount < objStream.Size If lByteCount + lChunkSize > objStream.Size Then lChunkSize = objStream.Size - lByteCount Response.BinaryWrite objStream.Read(lChunkSize) Response.Flush ' Flush the buffer every 100KBytes ' lByteCount = lByteCount + lChunkSize Wend objStream.Close Set objStream = Nothing
rencontré ce même problème lors de la migration du code ASP d'un serveur Windows 2003 vers Windows 2012 avec IIS 8.5. Le correctif était d'ajuster le code ASP comme suit: P>
de: p>
réponse.Ajouter "longueur de contenu", taille p>
à: p>
réponse.Ajouter "Taille de contenu", Taille P>