HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求。(上传文件长度问题)
HTTP 錯(cuò)誤 404.13 - Not Found 請(qǐng)求篩選模塊被配置為拒絕超過(guò)請(qǐng)求內(nèi)容長(zhǎng)度的請(qǐng)求。
問(wèn)題:HTTP 錯(cuò)誤 404.13 - Not Found 請(qǐng)求篩選模塊被配置為拒絕超過(guò)請(qǐng)求內(nèi)容長(zhǎng)度的請(qǐng)求。
原因:Web 服務(wù)器上的請(qǐng)求篩選被配置為拒絕該請(qǐng)求,因?yàn)閮?nèi)容長(zhǎng)度超過(guò)配置的值(IIS 7 默認(rèn)文件上傳大小時(shí)30M)。
解決:更改asp.net文件上傳大小限制
1. 修改IIS的applicationhost.config
文件位置: %windir%/system32/inetsrv/config/applicationhost.config
找到<requestFiltering>節(jié)點(diǎn),該節(jié)點(diǎn)下默認(rèn)沒(méi)有 <requestLimits maxAllowedContentLength="上傳大小的值(單位:byte)" /> 元素。為這個(gè)節(jié)點(diǎn)添加如下元素:<requestLimits maxAllowedContentLength="2147483647" />? (上傳的大小將改為2G)
2. web.config中,添加如下內(nèi)容
<configuration><system.web><httpRuntime maxRequestLength="2097151" executionTimeout="120"/></system.web> </configuration>??? 說(shuō)明:
httpRuntime?配置 ASP.NET HTTP 運(yùn)行時(shí)設(shè)置,以確定如何處理對(duì) ASP.NET 應(yīng)用程序的請(qǐng)求。
????? maxRequestLength?(指示 ASP.NET 支持的最大文件上載大小)
指定輸入流緩沖閾值限制(以 KB 為單位)。此限制可用于防止拒絕服務(wù)攻擊;例如,因用戶向服務(wù)器發(fā)送大型文件而導(dǎo)致的拒絕服務(wù)攻擊。
    默認(rèn)值為 4096 (4 MB),最大值只能是2097151K。
 ?????? executionTimeout
指定在被 ASP.NET 自動(dòng)關(guān)閉前,允許執(zhí)行請(qǐng)求的最大秒數(shù)。默認(rèn)90秒。
只有當(dāng) compilation 元素中的調(diào)試屬性為 False 時(shí),此超時(shí)屬性才適用。若要幫助避免在調(diào)試期間關(guān)閉應(yīng)用程序,請(qǐng)不要將此超時(shí)屬性設(shè)置為較大值。
3. web.config中,把以下內(nèi)容加在<system.webServer>節(jié)點(diǎn)
<security>
 ? <requestFiltering?>
 ??? <requestLimits?maxAllowedContentLength="2147483647"?></requestLimits>
 ? </requestFiltering>
 </security>
??? 上述中maxAllowedContentLengt是以BK為單位。
?
ASP.NET配置設(shè)置:?http://msdn.microsoft.com/zh-cn/library/b5ysx397(v=VS.80).aspx
?
?
ASP.NET MVC 上傳大文件時(shí)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 :
| 1 | <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了:
| 1 2 3 4 5 6 7 | <system.webServer> ??<security> ????<requestFiltering?> ??????<requestLimits?maxAllowedContentLength="1073741824" ></requestLimits> ????</requestFiltering> ??</security> </system.webServer> | 
?
?
總結(jié)
以上是生活随笔為你收集整理的HTTP 错误 404.13 - Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求。(上传文件长度问题)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: asp文件上传和下载
- 下一篇: H.264中的一些易混淆概念
