2013-02-15 27 views
25

Ho una funzione che ho creato che acquisirà un file .csv e caricherà le informazioni dichiarate, creando un account per ciascun utente nel file .csv.Il processo FastCGI ha superato il timeout di attività configurato

Il mio problema è che ho bisogno di essere in grado di fare questo con migliaia di voci in un file .csv, ma il mio problema è ottengo questo errore di timeout e non certo perché, come segue:

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 

Ecco la mia funzione CSV:

http://jsfiddle.net/fS4t4/ - questo è in PHP e lo metto semplicemente nella sezione javascript.

Come risolvere il problema?

UPDATE: Il mio fornitore è Winhost

+0

Quale versione di IIS sono Winhost usando? Sto indovinando IIS 7.0 dal momento che e 8 sono stati elencati sul sito. – icedwater

risposta

21

Vai a %windir%\system32\inetsrv\fcgiext.ini e individuare il parametro ActivityTimeout; copialo nella sezione [php]. Cambia il parametro nel valore che desideri e assicurati che non sia commentato. Riavvia IIS e dovresti essere bravo.

activityTimeout può anche essere impostato (IIS7 e versioni successive) da Gestione IIS in Impostazioni server/IIS/FastCGI/Modifica.

+0

Dove dovrei ottenere questo perché sto usando winhost come il mio provider> –

+0

Non ho mai usato WinHost, ma se non hai accesso a Windows Explorer sul server, potresti essere sfortunato. Ti consiglio di contattare il loro supporto e di chiedere come modificare il tuo file 'fcgiext.ini' per ottenere una risposta specifica per winhost –

+0

Grazie Dave! Lo apprezzo! –

26

Per Windows Server 2008 R2, la versione predefinita di IIS fornita è IIS 7.5. Il suggerimento di Dave suggerito da solution non funzionerà perché quel file non è presente.

Invece, provare %windir%\system32\inetsrv\config\applicationHost.config per impostare le opzioni per l'intero server. Guardate il blocco <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> 

Ricordarsi di riavviare il server web.

Ho impostato il numero activityTimeout su 90 e requestTimeout su 270 per dare ai processi più tempo per completare il lavoro. Questo non era abbastanza per il mio problema, ma dovrebbe almeno permettere alle persone di trovare i bit rilevanti su IIS 7.5.

+0

L'ho fatto su IIS 7.5. ora ho ottenuto *** ERR_CONNECTION_RESET *** – BioDeveloper

+0

Non posso aiutarti, @ Nari2. Scusate. L'hai già risolto? – icedwater

+0

Tramite il Manager IIS questo è in Connessioni> [Server]> FastCGI> fai clic sul file php-cgi.exe> ​​fai clic su Modifica – icc97

36

activityTimeout può anche essere impostato (IIS7 e versioni successive) da Gestione IIS in Impostazioni server/IIS/FastCGI/Modifica.

+1

Sentiti libero di modificare direttamente la risposta. :) – icedwater

+1

Oh caro, ora sembra che stia trollando perché le modifiche della gente vengano rifiutate. Non sono molto sicuro di ciò che si qualifica come modifica o come commento, ma consideriamo prima di commentare :) – icedwater

+1

haha ​​perché? Penso che probabilmente avrei dovuto dare la mia risposta come un tuo commento dato che è stata la tua risposta quella che mi ha messo sulla strada giusta. Mi sembra più facile farlo attraverso la GUI piuttosto che modificare il file XML ;-) – momo

18

Per IIS 7.5 è possibile modificare l'impostazione di file in

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

e trovare la linea di seguito e cambiare secondo il vostro requisito

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

non dimenticate di riavviare il server

O Questo può essere fatto da UI troppo:

Apri InetMgr (finestra + R tipo Inetmgr e premi invio) 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

+3

non c'è bisogno di riavviare il server –