2009-03-26 5 views
5

In IIS 6 konnte ich mithilfe von Perl einen Ausgabestream an den Client senden, anstatt die gesamte Sache zu puffern und sie einmal auszugeben. Dies erlaubte solche Dinge wie Fortschrittsbalken und dergleichen zu verwenden.Wie kann ich IIS 7 zum Leeren der Ausgabe erzwingen?

Wie kann ich dasselbe in IIS 7 erreichen?

Antwort

4

Wenn Sie in IIS 7 die Perl Script-Skriptzuordnung erstellt haben, können Sie ein Attribut hinzufügen, das dies korrigiert.

Sie ändern die% windir% \ system32 \ inetsrv \ config \ applicationHost.control-Datei und finden die Skriptzuordnung nach Name (in meinem Fall Perl-Skript). Dann fügen Sie die responseBufferLimit in die XML-Attribute, zum Beispiel:

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

Dies bewirkt, dass IIS ausgeführt werden, wie es in IIS 6 tat, mit Puffern aus.

1

Sie können web.config der Webanwendung anpassen, um responseBufferLimit="0" festzulegen, anstatt globale Einstellungen zu ändern. Beispiel 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> 

Legen Sie diese Datei in das Webstammverzeichnis. Es überschreibt die Servereinstellungen für *.pl.