2011-01-21 87 views
11

我目前有一個ASP.NET MVC項目,它具有文件上傳功能,如果用戶具有足夠好的連接並且它們的文件尺寸合理,它就可以很好地工作。ASP.NET MVC上傳文件超時

我遇到的問題是,有時用戶可能有一個56k連接(他們如何能夠在今天和這個年齡生活,我不知道),或者正在上傳一個更大的文件或一些組合他們倆。

我想保留普通頁面(90秒左右)的一個小超時,但允許用戶正在上傳的動作有較大的超時時間。這只是一個動作,所以我不介意將代碼放在這個單獨的動作中,而不是一個通用的解決方案。

最終,如果Request.Files.Count> 0將是最好的,則會自動增加超時的解決方案。

+5

我正在撥號。我住在牙買加。 – 2011-01-21 15:49:23

+0

什麼是超時?如果您在90秒左右之後沒有從客戶端獲取任何內容,則可能無法成功上傳任何內容。 – chris 2011-01-21 15:51:45

回答

8

我不確定這是否適用於MVC項目,但您可以嘗試在web.config中創建一個位置,併爲您的上傳URL設置執行超時。例如:

<location path="YourUrl"> 
    <system.web> 
    <httpRuntime executionTimeout="9001"/> 
    </system.web> 
</location> 
2

您可能需要增加在web.config中的超時:

<httpRuntime executionTimeout="01:00:00" /> 

現在,這是在子web.config文件中的意思是,如果你想增加超時僅上傳腳本你可以寫重寫一個通用的HTTP處理程序,它將處理上傳並將其放置在自己的子文件夾中,並擁有自己的web.config。

0

可能的問題:如果它不是一個超時,因爲零點的活動,也許它的東西與內置的尺寸限制做,在web.config httpRuntime部分,您可以添加/增加maxRequestLength=""到您的尺寸限制