睡眠功能是IIS

时间:2013-09-19 18:13:34

标签: php iis

我在iis中编写php代码以提供速度限制下载文件,因此我需要使用睡眠功能来限制速度。

这里,我的代码几行:

set_time_limit(0);
while(!feof($file))
{
    echo fread($file, 1024*10);
    ob_flush();
    flush();
    sleep(1);
    if (connection_status()!=0)
    {
        @fclose($file);
        exit;
    }

}

但浏览器说:'等待谜'。如果我删除sleep(1)一切都是正确的。我也用apache测试,一切都是正确的。

所以我在IIS中遇到了睡眠功能问题。

2 个答案:

答案 0 :(得分:1)

您需要为此正确配置服务器。 TBH你应该在服务器上使用一些东西来做,而不是依赖PHP,sleep(1);导致它发送一个块,暂停,发送一个块暂停等等。它不保持10kbps但是从500kbps开始对于一秒钟的第二个0kbps,它可能平均为10kbps,但它不一样,有些程序不会对它进行正确处理,并可能终止下载。您应该研究QoS(How to Limit Download Speeds from my Website on my IIS Windows Server?

答案 1 :(得分:0)

IIS的问题究竟是什么?请注意,等待1秒意味着您的脚本可能超过超时限制(这可能低至30秒),因此IIS将终止您的脚本。

如果您想提供大型文件,我建议您直接从IIS提供服务,并使用IIS内置的速率限制器而不是PHP。

见这里:http://www.iis.net/configreference/system.applicationhost/sites/site/limits