15分鐘後掛我有一個長期運行的PHP腳本,運行在IIS(通過WebMatrix的3PHP腳本在IIS
安裝IISEXpress對於第15分鐘,它工作正常,查詢亞馬遜產品廣告API,一次沖洗輸出到瀏覽器一行顯示它的進度,然後它會停止顯示任何進度
我相當確定這個問題是不是與腳本或亞馬遜API,因爲它達到了不同的點每次都進行一次,但總是在15分鐘時停止(我有一段時間內置於腳本中,並且在瀏覽器中刷新頁面的時間)
爲了防止腳本錯誤中止30秒我設置後:
set_time_limit(36000); in the script
我聽說IIS也許有15分鐘後一個CGI超時,並試圖加入CGI行ApplicationHostConfig覆蓋任何默認的超時時間。沒有效果。
<location path="myAmazonScript">
<system.webServer>
<cgi createCGIWithNewConsole="true" createProcessAsUser="false" timeout="00:20:00" />
<handlers>
<remove name="PHP54_via_FastCGI" />
<add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Program Files (x86)\iis express\PHP\v5.4\php-cgi.exe" responseBufferLimit="0" resourceType="Either" />
</handlers>
</system.webServer>
(如果你想知道,我設置ResponseBufferLimit 0強制沖洗。)
別處在system.webserver部分,我們有:
<cgi />
<fastCgi>
<application fullPath="C:\Program Files (x86)\iis express\PHP\v5.4\php-cgi.exe" monitorChangesTo="php.ini" activityTimeout="600" requestTimeout="600" instanceMaxRequests="10000">
<environmentVariables>
<environmentVariable name="PHP_FCGI_MAX_REQUESTS" value="10000" />
<environmentVariable name="PHPRC" value="C:\Program Files (x86)\iis express\PHP\v5.4" />
</environmentVariables>
</application>
</fastCgi>
沒有其他的 「超時」值存在。
順便說一句,我不能運行appcmd或通過GUI訪問IIS設置,可能是因爲是IISExpress。但applicationhost.config似乎工作正常。
任何意見非常讚賞。
Jonathan
你有沒有解決這個問題?我正在用單元測試運行同樣的事情......單元測試連接在15分鐘後重置,但我可以從服務器日誌中看到它們仍在服務器上運行16分鐘 – Kip