46

我有一个我构建的函数,它将获取一个 .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

4

4 回答 4

51

activityTimeout也可以从服务器/IIS/FastCGI Settings/Edit 下的 IIS 管理器中设置(IIS7 及更高版本)。

于 2013-09-26T10:59:24.730 回答
37

转到%windir%\system32\inetsrv\fcgiext.ini并找到ActivityTimeout参数;将其复制到 [php] 部分。将参数更改为您想要的任何值,并确保它没有被注释掉。重新启动 IIS,你应该很好。

activityTimeout也可以从服务器/IIS/FastCGI Settings/Edit 下的 IIS 管理器中设置(IIS7 及更高版本)。

于 2013-02-15T20:16:10.973 回答
37

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

不要忘记重新启动服务器

或者 这也可以从 UI 完成:

打开 InetMgr(window+R 输入 Inetmgr 并回车) 从运行命令打开 inet 管理器

在 inet 管理器中过滤快速 CGI

双击或单击编辑 fastcgi

修改 fastcgi 设置

在此处输入图像描述

于 2016-03-02T19:14:26.050 回答
30

对于 Windows Server 2008 R2,提供的默认 IIS 版本是 IIS 7.5。Dave 建议的解决方案将不起作用,因为该文件不存在。

相反,请尝试%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 和requestTimeout270,以便让进程有更多时间完成工作。这对我的问题来说还不够,但它至少应该允许人们在 IIS 7.5 上找到相关位。

于 2013-09-23T03:46:28.190 回答