在IIS7下,即便你在web.config设置了maxRequestLength=”1048576”最大允许上传的大小,也是没用的,其实是受C:/Windows/System32/inetsrv/config/applicationHost.config的限制, 默认最大只能上传30M的文件,修改下这个文件就好了,在该文件的system.webServer/security/requestFiltering/节内添加
<requestLimits maxAllowedContentLength ="<length>" />
就行了,将<length>修改为你要允许的大小,注意,这里的单位是bytes,而web.config里的maxRequestLength的单位是KB
具体方法如下
目标是要修改文件C:/Windows/System32/inetsrv/config/schema/IIS_schema.xml 。红色下划线部分使我们要修改的目标位置。
代码如下 | 复制代码 |
<element name="requestLimits"> <attribute name="maxAllowedContentLength" type="uint" defaultValue="30000000" /> <attribute name="maxUrl" type="uint" defaultValue="4096" /> <attribute name="maxQueryString" type="uint" defaultValue="2048" /> <element name="headerLimits"> <collection addElement="add" clearElement="clear" removeElement="remove"> <attribute name="header" type="string" required="true" isUniqueKey="true" validationType="nonEmptyString" /> <attribute name="sizeLimit" type="uint" required="true" /> </collection> </element> |
问题在于,这个文件是只读的,即使用管理员权限也不能修改。要先修改文件的权限,然后去掉只读属性才可以。
1.右键文件->属性->安全,选中目标用户,点击高级,修改文件所有者;
2.确定后点击编辑,就可以修改当前用户的权限了,添加“写入”权限。至此,权限设置OK了。
3.将文件的只读属性去掉。
4.以管理员身份打开VS,然后在VS中编辑目标XML文件,修改所需位置即可。
修改后重启IIS.