使用PowerShell配置system.web/httpRuntime下maxRequestLength参数失效咨询
问题原因及解决方案
你遇到的问题本质是两个命令操作的配置节所属的体系不同,并非命令逻辑错误:
system.webServer/asp/limits属于IIS原生服务配置体系,无需额外参数即可通过Location参数定位站点/应用配置完成修改system.web/httpRuntime属于.NET Framework ASP.NET配置体系,需要额外参数和配置权限才能正常修改
具体解决方法
- 添加PSPath参数指定配置提供程序
操作ASP.NET配置节时必须指定IIS配置提供程序根路径,修改后的命令如下:Set-WebConfigurationProperty -PSPath IIS:\ -Location $_ -Filter "system.web/httpRuntime" -Name "maxRequestLength" -Value 1234 - 提前解锁被锁定的配置节
服务器级的system.web/httpRuntime节默认可能被锁定,修改前先执行解锁命令:Unlock-WebConfiguration -Filter "system.web/httpRuntime" -PSPath IIS:\ - 注意参数单位和适配场景
maxRequestLength单位为KB,你设置的1234对应的是1234KB≈1.2MB,注意和你配置的maxRequestEntityAllowed(单位为字节)的数值匹配,避免出现请求大小校验逻辑冲突- 如果你操作的是.NET Core/.NET 5+的站点,
system.web配置节本身不生效,该类站点的请求大小限制需要在system.webServer/aspNetCore节点下配置maxAllowedContentLength参数即可
内容的提问来源于stack exchange,提问作者Andrei Sebastian Panait
相关产品推荐
相关产品推荐

