2008-10-21 44 views
9

我有一個很好的小文件上傳控件,我使用IFrame和ASP.NET AJAX爲ASP.NET webforms編寫。防止大文件上傳瀏覽器超時

但是,在大量上傳時,瀏覽器在完成發佈表單之前超時。

有沒有辦法可以增加這個?

我對替代解決方案沒有太大興趣,所以不要建議將整個事情改變。它適合於< 5兆上傳,我只想把它提升到8mb左右。

編輯:在Page_Load中設置超時並沒有改變任何東西。

回答

2

在Page_Load中,將Server.ScriptTimeout設置爲適合您的值。我相信在幾秒鐘內測量。

+0

你會在實際的iframe中做到這一點,得到張貼回來,是正確的? – FlySwat 2008-10-21 22:31:05

+0

是的,如果您在iframe中獲取請求超時,那麼您將在其中設置Server.ScriptTimeout。 – JasonS 2008-10-21 22:38:44

10

您需要更新IIS6及更高版本上的配置數據庫設置。關鍵是「AspMaxRequestEntityAllowed」並以字節表示。我強烈建議Metabase Explorer進行更改,但可以通過%systemroot%\ system32 \ inetserv \ metabase.xml中的XML訪問。

數據庫資源管理器:http://support.microsoft.com/kb/840671

嗯,也許是我找錯了樹......你不會做5頁MB的文件,如果這是不是已經調整。

在它的另一刺:看你的web.config:

<system.web> 
    <httpRuntime maxRequestLength="10240" executionTimeout="360"/> 
</system.web> 

最大請求長度在千字節和執行超時是秒。

+0

maxRequestLength實際上是千字節。請參閱http://msdn.microsoft.com/en-us/library/e1f13641.aspx – 2010-09-28 09:44:45

+0

你是對的,否則我提到的小數目是沒有意義的。謝謝,編輯。 – Godeke 2010-09-28 17:47:00

1

我想你可能需要調整MaxRequestLength

其在Web.config我覺得默認的4megs。

下將允許〜10兆的文件:

<httpRuntime maxRequestLength="10240" /> 
-6

檢查的Velodoc XP Edition的代碼。它包含一個上傳流模塊,一個可恢復的下載處理程序和基於ASP.NET Ajax擴展的ASP.NET上傳控件,它都是開源的。

欲瞭解更多信息,請查閱www.memba.comwww.velodoc.com

3

將此放在你的web.config

<system.web> 
    <httpRuntime executionTimeout="360" maxRequestLength="100000" /> 

這使360秒超時,並同時上傳數據的100,000 KB。

如果這不起作用,請在您的IIS服務器上運行此命令。 (替換[IISWebsitename])

C:\Windows\System32\inetsrv>appcmd set config "[IISWebsitename]" -section:requestFiltering -requestLimits.maxAllowedContentLength:100000000 -commitpath:apphost 

一次啓用100,000,000字節的上載數據。

-6

我解決了這個使用PHP與HTML:

  1. 我啓動一個會話
  2. 進入一個循環
  3. 創建一個循環,重新加載,在一個 時間做這項工作的一部分的頁面
  4. 直到完成作業
  5. 循環內的代碼執行部分作業
  6. 將會話變量增加到點使用Java腳本//這將重新啓動西弗斯 頁面計時器
  7. 負荷頁報告任務完成
1

打開Web到工作的下一部分

  • 重新加載頁面config文件,只是在<system.web>標籤下方,添加以下代碼:

    <httpRuntime executionTimeout="90" maxRequestLength="4096" useFullyQualifiedRedirectUrl="false" minFreeThreads="8" minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true" />

    現在,只需要看看maxRequestLength = <httpRuntime>標記的「4096」屬性。正如您可能已經意識到的那樣,您只需將值改爲您選擇的其他值(8 Mb爲8 Mb,16384爲16 Mb,65536爲64 Mb,等等......)。