2013-02-15 20 views
25

我有一個函數,我會建立一個.CSV文件並上傳信息,然後爲.csv文件中的每個用戶創建一個帳戶。FastCGI進程超出配置的活動超時

我的問題是我需要能夠在.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

+0

哪個版本的IIS是Winhost使用?我猜測IIS 7.0,因爲這和網站上列出了8。 – icedwater 2013-09-23 03:27:20

回答

21

轉到%windir%\system32\inetsrv\fcgiext.ini並找到ActivityTimeout參數;將其複製到[php]部分。將參數更改爲您想要的值,並確保它未被註釋掉。重新啓動IIS,你應該很好。

activityTimeout也可以從服務器/ IIS/FastCGI設置/編輯下的IIS管理器中設置(IIS7及更高版本)。

+0

我在哪裏可以得到這個,因爲我使用winhost作爲我的提供者> – 2013-02-15 20:18:21

+0

我從來沒有使用過winhost,但是如果您沒有訪問服務器上的Windows資源管理器,那麼您可能運氣不好。我建議聯繫他們的支持人員,並詢問如何編輯你的'fcgiext.ini'以獲得特定於winhost的答案 – 2013-02-15 20:22:06

+0

謝謝戴夫!我很感激! – 2013-02-15 20:23:55

26

對於Windows Server 2008 R2,提供的IIS的默認版本是IIS 7.5。 Dave建議的solution將不起作用,因爲該文件不存在。

而是嘗試使用%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上找到相關的位。

+0

我在IIS 7.5上這樣做了。現在我得到*** ERR_CONNECTION_RESET *** – BioDeveloper 2014-04-17 12:24:05

+0

不能幫助你,@ Nari2。抱歉。你解決了嗎? – icedwater 2014-04-21 00:42:06

+0

通過IIS管理器,這是在連接> [服務器]> FastCGI>點擊php-cgi.exe>點擊編輯 – icc97 2017-07-21 08:52:30

36

activityTimeout也可以在服務器/ IIS/FastCGI設置/編輯下的IIS管理器中設置(IIS7及更高版本)。

+1

隨意編輯答案直接。 :) – icedwater 2014-01-14 03:38:19

+1

哦,親愛的,現在看起來好像我在嘲弄人們的編輯會被拒絕。我不確定什麼是編輯或作爲評論的資格,但首先要考慮評論:) – icedwater 2014-03-10 01:58:01

+1

哈哈爲什麼?我想我應該把我的回答作爲你的評論,因爲這是你的回答,讓我走上正軌。我只是覺得通過圖形用戶界面比編輯XML文件更容易;-) – momo 2014-03-10 04:11:43

18

對於IIS 7.5您可以更改文件的設置在

C:\ WINDOWS \ SYSTEM32 \ INETSRV \設置\ applicationHost。配置

,並找到線下和變化按您的要求

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

不要忘記重啓服務器

OR 這可以從UI也做:

打開InetMgr(窗口+ R型Inetmgr並回車) 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

無需重啓服務器 – 2016-10-01 20:57:08