IIS出于安全考虑限制了大文件的上传,而网上百度到的大部分解决方法都是用一个管理员权限的记事本打开一个文件修改参数,但是我发现里面根本没有网上所说的那些参数,最后自己找到了修改发布文件的webconfig的方法解决的IIS对大文件上传的限制。
首先在system.web中加入以下代码
- <httpRuntime
- maxRequestLength="2097151"//最大上传长度
- useFullyQualifiedRedirectUrl="true"
- executionTimeout="6000"//最大响应时间
- minFreeThreads="8"
- minLocalRequestFreeThreads="4"
- appRequestQueueLimit="100"
- enableVersionHeader="true"
- />
这个也是网上百度答案中比较多的加法,这里修改最大上传的长度为2097151kb也就是2G,可以根据自己的需要修改这个大小。而executionTimeout属性是用于限制文件上传服务器的响应时间,也就是说如果网速很慢,上传同样大小的文件可能需要给予更长的响应时间,否则虽然没有达到上传大小限制但因为上传超时而被ISS拒绝。
但是以上方法仍然不够,我们还需要添加一个很关键的东西来修改IIS中的属性,第一次成功是通过打开IIS对应发布文件的
1、打开IIS选择你所发布的网页右边属性的最下面一项
2、打开后根据这个路径打开:system.webserver/security/requestFiltering
3、修改下图表示的部分的大小限制,单位为byte(图中为最大值)
这个地方默认是30000000byte,我将它修改成了IIS的最大限制2G(不到2G)。这种修改方法不是一劳永逸,如果重新发布或者重新选择别的发布文件那么它将会重置成30000000byte。
所以最后的解决方法是,在发布文件的webconfig中加入以下代码(放在system.web之外):
- <system.webServer>
- <security>
- <requestFiltering>
- <requestLimits maxAllowedContentLength="2072576000"/>
- </requestFiltering>
- </security>
- </system.webServer>