错误如下:
错误提示: 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: 超过了最大请求长度。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 |
堆栈跟踪:
。。。。。。。。。。。。
解决办法:
测试上传文件代码,默认ASP。NET允许最大一次上传2M大小的文件,我在自己的服务器上传一个网易泡泡的安装程序POPO.exe文件时候产生这个错误。
参考文章:
Asp.net中,上传文件的默认大小是4096 KB,也就是4M,不过你可以在Web.config中更改这个数据。
<system.web>
<!-- 增加上传文件限制为8M -->
<httpRuntime maxRequestLength="8192" useFullyQualifiedRedirectUrl="true" executionTimeout="100"/>
<!-- 或增加上传文件限制为1G
<httpRuntime maxRequestLength="1048576" executionTimeout="3600" />
将此段代码复制到Web.confing里的<system.web></system.web>中就可
-->
</system.web>
那么此时就是8M的文件,当然你也可以把它修改的更大,但是不管改成多大都会有个极限,如果用户上传的文件比这个值大,就会出现程序Catch不到的异常,因为这个是在运行时才能够监测。
通常更常用的的方法是直接修改C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/CONFIG目录下的 machine.config文件(Framework版本会不同,你用什么版本就进什么版本的目录),查找httpruntime在这一行将 maxRequestLength的值改为理想的值,比如想要8M,就输入8192。这样,你的任何一个web工程都可以上传最大8M的文件。
不使用第三方组件而仅使用.net自带的功能的话,好像10M已经是实际上的峰值了。