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

来源:互联网 发布:免费视频格式转换软件 编辑:程序博客网 时间:2024/05/16 23:56

要利用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的值与maxRequestLength的值的值设置为一样的,这时候请注意它们各自的单位,使maxAllowedContentLength=“2147483647”,这样就可以上传大文件了,但是大文件传输的速度却非常慢。


总结:

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

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

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




感谢您的阅读~




阅读全文
0 0