2009-03-26 14 views
5

En IIS 6, al usar Perl, pude enviar una secuencia de salida al cliente en lugar de almacenar en el búfer toda la cosa y expulsarla una vez. Esto permitió cosas tales como barras de progreso y tal para ser utilizado.¿Cómo puedo forzar a IIS 7 a enjuagar la salida?

¿Cómo puedo lograr lo mismo en IIS 7?

Respuesta

4

En IIS 7, una vez que haya creado la asignación de secuencia de comandos de Perl Script, puede agregar un atributo que arreglará esto.

Modifica el archivo% windir% \ system32 \ inetsrv \ config \ applicationHost.control y encuentra la asignación de scripts por nombre (en mi caso, Perl-Script). A continuación, añadir el atributo responseBufferLimit en el XML, por ejemplo:

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

Esto hace que IIS para ejecutar como lo hizo en IIS 6, con búfer fuera.

1

Puede personalizar el web.config de la aplicación web para establecer responseBufferLimit="0" en lugar de cambiar la configuración global. Ejemplo 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> 

Coloque este archivo en el directorio raíz web. Anulará la configuración del servidor para *.pl.

Cuestiones relacionadas