web-dev-qa-db-fra.com

Le processus FastCGI a dépassé le délai d’activité configuré

J'ai une fonction que j'ai construite qui va saisir un fichier .csv et télécharger les informations indiquées ensuite, en créant un compte pour chaque utilisateur dans le fichier .csv.

Mon problème est que je dois pouvoir le faire avec des milliers d'entrées dans un fichier .csv, mais mon problème est que j'obtiens cette erreur de temporisation et je ne sais pas pourquoi, comme suit:

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

Voici ma fonction CSV:

http://jsfiddle.net/fS4t4/ - c'est dans PHP et je le jette juste dans la section javascript.

Comment régler ceci?

MISE À JOUR: Mon fournisseur est Winhost

33
David Biga

Aller à %windir%\system32\inetsrv\fcgiext.ini et recherchez le paramètre ActivityTimeout; copiez-le dans la section [php]. Modifiez le paramètre à la valeur que vous souhaitez et assurez-vous également qu'il n'est pas mis en commentaire. Redémarrez IIS et vous devriez être bon.

activityTimeout peut également être défini (IIS7 et supérieur) à partir du gestionnaire IIS sous le serveur/IIS/FastCGI Settings/Edit.

28
Dave Lasley

activityTimeout peut également être défini (IIS7 et supérieur) à partir du gestionnaire IIS sous le serveur/IIS/FastCGI Settings/Edit.

40
momo

Pour Windows Server 2008 R2, la version par défaut de IIS fournie est IIS 7.5. La solution Dave suggérée ne fonctionnera pas) parce que ce fichier n'est pas là.

Essayez plutôt %windir%\system32\inetsrv\config\applicationHost.config pour configurer les options pour l'ensemble du serveur. Regarde le <fastCgi> bloc:

<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>

N'oubliez pas de redémarrer votre serveur Web.

J'ai défini activityTimeout sur 90 et requestTimeout sur 270 pour donner plus de temps aux processus pour terminer leur travail. Ce n'était pas suffisant pour mon problème, mais cela devrait au moins permettre aux gens de trouver les bits pertinents sur IIS 7.5.

28
icedwater

Pour IIS 7.5 , vous pouvez modifier le paramètre du fichier dans

C:\Windows\System32\inetsrv\config\applicationHost.config

et trouvez la ligne ci-dessous et changez selon vos besoins

<fastCgi>
    <application fullPath="C:\PHP\php-cgi.exe" idleTimeout="900" activityTimeout="180" requestTimeout="10000" instanceMaxRequests="10000" />
</fastCgi>

N'OUBLIEZ PAS DE REDÉMARRER LE SERVEUR

[~ # ~] ou [~ # ~] Cela peut aussi être fait à partir de l'interface utilisateur:

Ouvrez InetMgr (fenêtre + type R Inetmgr et appuyez sur Entrée) open inet manager from run command

Filter Fast CGI in inet manager

double click or click edit fastcgi

modify fastcgi setting

enter image description here

27