web-dev-qa-db-ja.com

FastCGIプロセスが設定されたアクティビティタイムアウトを超えました

.csvファイルを取得し、その情報をアップロードして、.csvファイルに各ユーザーのアカウントを作成する関数を作成しました。

私の問題は、.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セクションにスローします。

これを修正する方法は?

更新:私のプロバイダーはWinhostです

33
David Biga

%windir%\system32\inetsrv\fcgiext.iniに移動して、ActivityTimeoutパラメーターを見つけます。 [php]セクションにコピーします。パラメーターを任意の値に変更し、コメント化されていないことも確認します。再起動IISとあなたは良いはずです。

activityTimeoutは、IIS server/IIS/FastCGI Settings/Editの下のManagerからも設定できます(IIS7以降)。

28
Dave Lasley

activityTimeoutは、IIS server/IIS/FastCGI Settings/Editの下のManagerからも設定できます(IIS7以降)。

40
momo

Windows Server 2008 R2の場合、IIS提供されるデフォルトのバージョンはIIS 7.5です。提案された ソリューション は機能しませんそのファイルが存在しないためです。

代わりに、%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。

28
icedwater

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>

サーバーの再起動を忘れないでください

[〜#〜] or [〜#〜]これはUIからも実行できます。

InetMgrを開きます(window + RでInetmgrと入力してEnterキーを押します) 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