Процесс FastCGI превысил настроенный тайм-аут активности
У меня есть функция, которую я построил, которая возьмет файл .csv и выведет информацию, указанную тогда, создав учетную запись для каждого пользователя в CSV файле.
Моя проблема: мне нужно иметь возможность делать это с тысячами записей в CSV файле, но моя проблема заключается в том, что я получаю эту ошибку времени и не уверен, почему:
HTTP Error 500.0 - Internal Server Error
c:\php-fastcgi\php-cgi.exe - The FastCGI process exceeded configured activity
timeout
Detailed Error Information
Module -
FastCgiModule
Notification -
ExecuteRequestHandler
Handler -
PHP_via_FastCGI
Error Code -
0x80070102
Вот моя функция CSV:
http://jsfiddle.net/fS4t4/ - это в PHP, и я просто бросаю его в раздел javascript.
Как это исправить?
UPDATE: Мой провайдер - Winhost
Ответы
Ответ 1
Перейдите к %windir%\system32\inetsrv\fcgiext.ini
и найдите параметр ActivityTimeout; скопируйте его в раздел [php]. Измените параметр на любое значение, которое вы хотите, а также убедитесь, что он не закомментирован. Перезапустите IIS, и вам должно быть хорошо.
activityTimeout
также может быть установлен (IIS7 и выше) из диспетчера IIS в настройках сервера/IIS/FastCGI/Edit.
Ответ 2
activityTimeout
также может быть установлен (IIS7 и выше) из диспетчера IIS в настройках сервера/IIS/FastCGI/Edit.
Ответ 3
Для Windows Server 2008 R2 стандартная версия IIS, которая поставляется, представляет собой IIS 7.5. Решение Предлагаемый Dave не будет работать, потому что этого файла нет.
Вместо этого попробуйте %windir%\system32\inetsrv\config\applicationHost.config
настроить параметры для всего сервера. Посмотрите на блок <fastCgi>
:
<fastCgi>
<application fullPath = "C:\php\php-cgi.exe" arguments = ""
monitorChangesTo = "" stderrMode = "ReturnStdErrIn500" maxInstances = "4"
idleTimeout = "300" activityTimeout = "30" requestTimeout = "90"
instanceMaxRequests = "5000" protocol = "NamedPipe" queueLength = "1000"
flushNamedPipe = "false" rapidFailsPerMinute = "10">
<environmentVariables>
<environmentVariable name="PHP_MAX_REQUESTS" value="5000" />
</environmentVariables>
</application>
</fastCgi>
Не забудьте перезагрузить веб-сервер.
Я установил activityTimeout
в 90 и requestTimeout
на 270, чтобы дать процессам больше времени для завершения своей работы. Этого было недостаточно для моей проблемы, но она должна по крайней мере позволять людям находить соответствующие биты в IIS 7.5.
Ответ 4
Для IIS 7.5 вы можете изменить настройку файла в
C:\Windows\System32\Inetsrv\Config\applicationHost.config
и найдите строку ниже и измените ее согласно вашему требованию
<fastCgi>
<application fullPath="C:\PHP\php-cgi.exe" idleTimeout="900" activityTimeout="180" requestTimeout="10000" instanceMaxRequests="10000" />
</fastCgi>
НЕ ЗАБЫТЬ, ЧТОБЫ ОТПРАВИТЬ СЕРВЕР
ИЛИ
Это также можно сделать из пользовательского интерфейса:
Открыть InetMgr (окно + R типа Inetmgr и нажать enter)
![открыть менеджер inet из команды запуска]()
![Фильтровать быстрый CGI в менеджере inet]()
![дважды щелкнуть или щелкнуть edit fastcgi]()
![изменить настройку fastcgi]()
![введите здесь описание изображения]()