ASP.NET MVC 上传大文件时404
前一段時(shí)間會(huì)員的上傳組件改用FLASH的swfupload來(lái)上傳,既能很友好的顯示上傳進(jìn)度,又能完全滿足大文件的上傳。
后來(lái)服務(wù)器升級(jí)到windows 2008,改為IIS7后,上傳文件一旦超過(guò)30M時(shí),就出現(xiàn)404錯(cuò)誤,而且是是上傳進(jìn)度達(dá)到100%之后,真是讓人難思其解。
?
反復(fù)測(cè)試,發(fā)現(xiàn)FLASH上傳文件到并沒(méi)有正確的執(zhí)行.NET程序,也就是.NET程序本身有問(wèn)題;
但小于30M又是一切OK,難道是上傳的文件大小有所限制?
檢查web.config的httpRuntime :
<httpRuntime maxRequestLength="2097151" executionTimeout="50000" />已經(jīng)是很大值了。
因?yàn)闊o(wú)法正確得到詳細(xì)的錯(cuò)誤信息,就用一個(gè)普通的FORM提交一個(gè)FileUpload測(cè)試,原來(lái)真是web.config的設(shè)置問(wèn)題:
報(bào)錯(cuò)信息:
最可能的原因:
Web 服務(wù)器上的請(qǐng)求篩選被配置為拒絕該請(qǐng)求,因?yàn)閮?nèi)容長(zhǎng)度超過(guò)配置的值。
可嘗試的操作:
確認(rèn) applicationhost.config 或 web.config 文件中的 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設(shè)置。?
鏈接和更多信息
? 這是一項(xiàng)安全功能。請(qǐng)不要更改此功能,除非您完全清楚更改的影響范圍。您可以配置 IIS 7.0 服務(wù)器以拒絕內(nèi)容長(zhǎng)度大于指定值的請(qǐng)求。如果請(qǐng)求的內(nèi)容長(zhǎng)度大于所配置的長(zhǎng)度,便會(huì)返回此錯(cuò)誤。如果需要增加內(nèi)容長(zhǎng)度,請(qǐng)修改 configuration/system.webServer/security/requestFiltering/requestLimits@maxAllowedContentLength 設(shè)置。
?
解決方案
原來(lái)IIS7的上傳文件大小,即便是在經(jīng)典模式下,也一定要在system.webServer里設(shè)置,加上去就OK了:
<system.webServer><security><requestFiltering ><requestLimits maxAllowedContentLength="1073741824" ></requestLimits></requestFiltering></security></system.webServer>?
轉(zhuǎn)載于:https://www.cnblogs.com/smallerpig/p/3646171.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET MVC 上传大文件时404的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: dns的子域授权
- 下一篇: asp.net ajax控件工具集 Au