您的位置:首页 > 理论基础 > 计算机网络

文件上传:HTTP错误 404.13-Not Found 请求筛选模块被配置为拒绝超过请求内容长度的请求

2017-12-23 10:54 736 查看
要利用HTML控件下的Input(File)以及一个提交按钮来实现一个简单的文件上传功能,简单设计如下图:






上传按钮的代码如下:

protected void btnUpLoad_Click(object sender, EventArgs e)
{
string fullFileName=this.File1 .PostedFile .FileName ;
string fileName = this.File1.PostedFile.FileName.Substring(fullFileName.LastIndexOf("\\") + 1);
this.File1.PostedFile.SaveAs(Server .MapPath ("up")+"\\"+fileName );
}

当选择的上传文件比较小的时候,是可以正常上传的,但是一旦文件比较大时,就会出现如下图的错误:






于是,按照提示以及百度搜索,在web.config文件中的<system.webServer>节点下增加以下内容:

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


然而,还是会出现问题,如下图:




于是,配置最大请求长度,在<system.web>节点下添加以下内容:


<httpRuntime maxRequestLength ="1024000000" appRequestQueueLimit ="100" useFullyQualifiedRedirectUrl ="true " executionTimeout ="120"/>

然而,再次出现问题了,如下图:






这次,把maxRequestLength的值改为“2097151”,一般情况下,将maxAllowedContentLength的值与[b]maxRequestLength的值的值设置为一样的,这时候请注意它们各自的单位,使maxAllowedContentLength=“2147483647”,这样就可以上传大文件了,但是大文件传输的速度却非常慢。[/b]

总结:

httpRuntime 配置 ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求。

maxRequestLength (指示 ASP.NET 支持的最大文件上载大小),指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。默认值为
4096 (4 MB),最大值只能是2097151KB(大约2G)。

maxAllowedContentLength属性,以字节为单位,是想要启用的附件的大小。默认 30000000B,约30M。

感谢您的阅读~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐