2014-12-05 67 views
0

我正在開發一個允許用戶上傳文件的MVC5項目。我已經有方法來過濾無效的文件擴展名(只允許圖片和pdf)。然而,當我嘗試上傳大文件,無論擴展的,我得到這個錯誤:無法處理iis 8.0上的mvc 5應用程序中的http錯誤404.13

HTTP Error 404.13 - Not Found 
The request filtering module is configured to deny a request that exceeds 
the request content length. 

的方法上傳甚至不被調用,它只是徑直到錯誤頁面。

一週後,我發現表示,我需要改變我的項目的web.config文件,我做了這樣:

<security> 
    <requestFiltering> 
    <requestLimits maxAllowedContentLength="6000000" /> 
    </requestFiltering> 
</security> 

我仍然得到錯誤,所以我也嘗試添加<httpRuntime maxRequestLength="6000" executionTimeout="3600" /><system.web>,但扔此錯誤:

HTTP Error 500.19 - Internal Server Error 
The requested page cannot be accessed because the related configuration data 
for the page is invalid. 

顯然這條線必須適用於早期版本的IIS。

我還發現另一個解決方案,建議編輯我的服務器上的applicationHost.config文件,如項目的web.config;這也沒有做到。

有什麼建議嗎?

回答

1

它看起來像你實際上使maxAllowedContentLength變小。默認是30000000字節,並且你有6000000字節以上。

30000000 B = 30 MB

6000000 B = 6 MB

添加另一0應該做的伎倆。

+0

由於用戶將上傳圖片和/或PDF,我想限制文件的最大值爲6MB(對於圖像而言,這非常慷慨)。'問題'是如果提交更大的文件,我的控制器方法甚至沒有被擊中;該網站只是進入IIS錯誤頁面。 – Anders 2014-12-05 21:09:55

+1

控制器不會被調用。該框架已經解決了保護控制器的錯誤。您將不得不在Global.asax.cs中捕獲application_error – phillip 2014-12-05 21:15:21

+0

這是預期的,因爲IIS在處理請求/獲取到控制器之前拋出錯誤。我會說增加web.config文件中的大小,以便IIS不會拋出錯誤並以其他方式驗證文件大小。 – Aaron 2014-12-05 21:16:18

相關問題