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

要利用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。




感谢您的阅读~




评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值