Как заставить IIS 7 сбросить вывод? - PullRequest
5 голосов
/ 26 марта 2009

В IIS 6, используя Perl, я мог посылать поток вывода клиенту вместо того, чтобы буферизовать весь объект и выгрузить его за один раз. Это позволило использовать такие вещи, как индикаторы выполнения и другие.

Как мне сделать то же самое в IIS 7?

Ответы [ 3 ]

4 голосов
/ 26 марта 2009

В IIS 7 после создания сопоставления сценария Perl Script вы можете добавить атрибут, который это исправит.

Вы изменяете файл% windir% \ system32 \ inetsrv \ config \ applicationHost.control и находите сопоставление сценария по имени (в моем случае Perl-Script). Затем добавьте атрибут responseBufferLimit в XML, например:

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

Это заставляет IIS работать так же, как в IIS 6, с отключенной буферизацией.

1 голос
/ 08 октября 2014

Вы можете настроить web.config веб-приложения для установки responseBufferLimit="0" вместо изменения глобальных настроек. Пример 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>

Поместите этот файл в корневой веб-каталог. Он переопределит настройки сервера для *.pl.

0 голосов
/ 28 декабря 2018

Единственной вещью, которая работала для меня в IIS 7.5 (Windows 7), была следующая команда, запускаемая из CMD:

appcmd.exe set config /section:handlers "/[name='PHP_via_FastCGI'].ResponseBufferLimit:0"

ПРИМЕЧАНИЕ. Вы должны заменить PHP_via_FastCGI на имя вашего обработчика PHP в «Сопоставлении обработчиков».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...