Процесс FastCGI превысил настроенный тайм-аут активности
У меня есть функция, которую я построил, которая захватит a .csv-файл и загрузить информацию, указанную затем, создавая учетную запись для каждого пользователя в .CSV-файл.
моя проблема в том, что мне нужно иметь возможность делать это с тысячами записей в a .csv-файл, но моя проблема в том, что я получаю эту ошибку тайм-аута и не уверен, почему, следующим образом:
HTTP Error 500.0 - Internal Server Error
c:php-fastcgiphp-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
4 ответов
на %windir%\system32\inetsrv\fcgiext.ini
и найдите параметр ActivityTimeout; скопируйте его в раздел [php]. Измените параметр на любое значение, которое вы хотите, а также убедитесь, что он не закомментирован. Перезапустите IIS и вы должны быть хорошо.
activityTimeout
можно также установить (IIS7 и выше) из диспетчера IIS в разделе Настройки/редактирование сервера/IIS/FastCGI.
activityTimeout
можно также установить (IIS7 и выше) из диспетчера IIS в разделе Настройки/редактирование сервера/IIS/FastCGI.
для Windows Server 2008 R2 по умолчанию предоставляется версия IIS 7.5. The решение Дэйв предположил, что не будет работать, потому что этого файла нет.
попробуй%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.
на 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>
НЕ ЗАБУДЬТЕ ПЕРЕЗАГРУЗИТЬ СЕРВЕР
или Это можно сделать и из UI:
открыть InetMgr (window+R введите Inetmgr и нажмите входить)