2011-11-16 35 views
0

失敗這是我在此刻得到了:PHP readfile_chunked後5分鐘路程

$chunksize = 1024*4; 
$h = fopen($file, 'rb'); 
set_time_limit(600); 
while(!feof($h)){ 
    echo fread($h, $chunksize); 
    flush(); 
} 
fclose($h); 

我試圖增加塊大小,我試着每次迭代復位超時,我已經嘗試將超時設置爲零(最初爲5分鐘),我甚至嘗試將循環外部的flush()放到它自己的緩衝區中來處理它,並且每次下載都會在5分鐘內死掉。有時它是50.2 MB,有時候是54.8或者其中的任何東西,所以我知道這不是文件大小。 php_info()表示最大時間是30秒,所以我可以將它增加到300,但就是這樣。

在IIS(服務器2003)有什麼可以重寫它嗎?

回答

0

啊,微軟MVP。每當他們說什麼是不可能的,你知道這只是一個挖掘的問題。

http://www.murraymoffatt.com/software-problem-0002.html

我能夠給這一個特定的文件無限的運行時間,而不會影響網站的其餘部分。編輯: 看起來像那些文章開始消失。

在IIS 5.0(Win2K中)復位的FastCGI超時:

  • 啓動IIS管理控制檯(開始=>設置=>控制面板=> 管理工具=> Internet服務管理器)。
  • 在控制檯左側的樹中,您應該看到「Internet 信息服務」位於最上方,然後在您的計算機的下方名稱爲 。右鍵單擊您的計算機名稱並選擇「屬性」。
  • 在「主屬性」下是一個列表框;確保顯示「WWW服務」 ,然後單擊「編輯」按鈕。
  • 點擊「主目錄」標籤。
  • 單擊應用程序設置區域中的「配置」按鈕。
  • 點擊「Process Options」標籤。
  • 在CGI配置區域中,有一個以秒爲單位指定的「CGI腳本超時」值 。默認值是300秒(5分鐘)。
  • 將此值更改爲任何您希望超時的值。
  • 單擊每個窗口上的「確定」按鈕,直到您獲得 回到IIS管理控制檯。關閉管理 控制檯。
  • 重新啓動IIS通過打開命令提示(開始=>程序 =>附件=>命令提示),並輸入命令:IISRESET

IIS 5.1(操作系統):

  • 打開IIS 。
  • 展開計算機名稱。
  • 右鍵單擊「網站」並選擇「屬性」。
  • 轉到「主目錄」選項卡。
  • 點擊「配置」按鈕,彈出另一個窗口。
  • 轉到「Process Options」選項卡。
  • 設置爲你的心臟需求。
  • 好的。

這裏的指令IIS 6.0:http://www.iisadmin.co.uk/?p=7 但下載鏈接MetaEdit的壞了,試一下:http://support.microsoft.com/kb/301386

0

我正經歷着完全相同的問題..

對於任何人都希望,這些解決方案是特定於Windows IIS

我剛剛經歷了2天嘗試每個可能的配置300秒的設置來嘗試解決問題。

我在配置數據庫中更改了CGITimeout值,但在我的案件的罪魁禍首竟然是FastCGI的ini文件(位於c:\windows\system32\inetsrv\fcgiext.ini

有一個設置(以秒爲單位):

ActivityTimeout=300 

更改此值並重新啓動IIS。