2009-03-26 7 views
5

Dans IIS 6, en utilisant Perl, j'ai été capable d'envoyer un flux de sortie au client plutôt que de mettre en mémoire tampon tout le contenu et de le décharger une fois. Cela a permis des choses telles que des barres de progression et d'autres à utiliser.Comment puis-je forcer IIS 7 à vider la sortie?

Comment puis-je accomplir la même chose dans IIS 7?

Répondre

4

Sous IIS 7, une fois que vous avez créé le mappage de script Perl Script, vous pouvez ajouter un attribut qui le corrigera.

Vous modifiez le fichier% windir% \ system32 \ inetsrv \ config \ applicationHost.control et recherchez le mappage de script par nom (dans mon cas, Perl-Script). Ensuite, ajoutez l'attribut responseBufferLimit dans le XML, par exemple:

<add name="Perl-Script" path="*.pl" blah blah blah responseBufferLimit="0" /> 

Cela provoque IIS pour exécuter comme dans IIS 6, avec mise en mémoire tampon au large.

1

Vous pouvez personnaliser le fichier web.config de l'application Web pour définir responseBufferLimit="0" au lieu de modifier les paramètres globaux. Exemple web.config:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <handlers> 
      <add name="Perl CGI for .pl (custom)" path="*.pl" verb="GET,HEAD,POST" modules="CgiModule" scriptProcessor="C:\Perl64\bin\perl.exe &quot;%s&quot; %s" resourceType="File" requireAccess="Script" responseBufferLimit="0" /> 
     </handlers> 
    </system.webServer> 
    <system.web> 
     <identity impersonate="false" /> 
    </system.web> 
</configuration> 

Placez ce fichier dans le répertoire racine Web. Il remplacera les paramètres du serveur pour *.pl.