C#超过了最大请求长度 asp.net 上传文件 太大问题
/”应用程序中的服务器错误。 超过了最大请求长度。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 超过了最大请求长度。
源错误:
执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[HttpException (0x80004005): 超过了最大请求长度。] System.Web.HttpRequest.GetEntireRawContent() +983 System.Web.HttpRequest.GetMultipartContent() +88 System.Web.HttpRequest.FillInFormCollection() +224 System.Web.HttpRequest.EnsureForm() +142 System.Web.HttpRequest.get_Form() +16 System.Web.HttpRequest.get_HasForm() +80 System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +49 System.Web.UI.Page.DeterminePostBackMode() +111 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +232
.net mvc项目在做上传文件时,出现这个问题,上传文件的是通过表单提交,后台是通过请求里面获取文件信息的
1、问题截图:

堆栈信息
“/”应用程序中的服务器错误。 超过了最大请求长度。 说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 超过了最大请求长度。
[HttpException (0x80004005): 超过了最大请求长度。] System.Web.HttpRequest.GetEntireRawContent() +9936248 System.Web.HttpRequest.GetMultipartContent() +63 System.Web.HttpRequest.FillInFormCollection() +160 System.Web.HttpRequest.EnsureForm() +69 System.Web.HttpRequest.get_Form() +13 System.Web.HttpRequest.get_Item(String key) +42 DevExpress.Web.ASPxHttpHandlerModule.IsCallBack(HttpRequest request) +81 DevExpress.Web.ASPxHttpHandlerModule.PreSendRequestHeadersHandler(Object sender, EventArgs args) +110
2、 解决方法:
在项目web.config文件上添加如下配置
1)在<system.web>下添加最大请求长度设置为1G
<system.web>
<!--最大请求长度,单位为KB(千字节),默认为4M,设置为1G,上限为2G -->
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
</system.web>
2)在<system.webServer>下添加允许上传文件长度设置为1G
<system.webServer>
<!--允许上传文件长度,单位字节(B),默认为30M,设置为1G,最大为2G -->
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824"/>
</requestFiltering>
</security>
</system.webServer>
注意:
1)为什么要设置最大请求长度为1G?
原先是设置为20M的,然后客户上传一个21M,所以还是会报这样的问题
2)那么如何解决限制文件上传大小?
在配置文件设置为1G,在文件上传方法进行文件大小限制判断
参考网址:
平时多记记,到用时才能看看,记录你的进步,分享你的成果
1)在<system.web>下添加最大请求长度设置为1G
<system.web>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824"/>
</requestFiltering>
</security>
</system.webServer> 1 2 3 4 5 6 7 2、使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性 解决办法: 1)在Views下的web.config增加如下节点到下
<system.web.extensions>
JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); jsSerializer.MaxJsonLength = Int32.MaxValue; 1 参考网址:
