IIS Express 的默认限制 <limits>
Default Limits <limits> for IIS Express
我需要测试一个可以接受非常大文件的文件上传组件。我想在我的开发环境中进行本地测试,但由于我使用 IIS Express 而不是 IIS 7,我不确定在哪里进行全局更改。
在 IIS 7 中,无法通过 web.config 进行更改,但需要通过 IIS 管理器工具进行更改。有关示例,请参阅 this IIS article。
有谁知道如何使用 IIS Express 进行相同的全局更改(在 Visual Studio 2013 年)?
您可以在 web.config
中使用它
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
</system.webServer>
如果建议的 web.config 更改 ppascualv 不起作用,请尝试将其放入 IIS Express applicationhost.config,可在
%userprofile%\my documents\iisexpress\config\applicationhost.config
低于
<system.webServer>
放
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
这应该将其设置为全局,除非来自应用程序的 web.config 覆盖它。
基本上web.configmaxRequestLength
和maxAllowedContentLength
都需要设置才能上传文件
maxRequestLength
表示ASP.NET 支持的最大文件上传大小
maxAllowedContentLength
这指定了 IIS 支持的请求中内容的最大长度。
注意:maxRequestLength
以千字节为单位 & maxAllowedContentLength
以字节为单位
默认情况下,Machine.config 配置为接受最大 4096 KB (4 MB) 的 HTTP 请求,它反映在您的所有 ASP.NET 应用程序中。您可以直接更改 Machine.config 文件,也可以只更改您想要
的应用程序的 Web.config 文件
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
</system.webServer>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
由于请求 headers 太大,正在努力绕过“400 错误请求”,针对 Visual Studio 2019 的默认 IIS Express 实例,我无法获得 Sarah 的 solution to work, but found that the http.sys settings here 成功了。
具体来说,我在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
中创建了一个名为 MaxRequestBytes
的 DWORD 注册表值,并将其设置为足够大的值。对我来说,33000
就足够了。同样在同一个地方创建了MaxFieldLength
,并设置为33000
。必须重新启动计算机才能使设置生效。
至于我的问题的原因,描述的是here。它本质上是由放置在请求 headers 中的身份验证 cookie 引起的。推送到 Azure App Service 工作正常(headers 的限制可能是 32KB),但是对于本地 IIS Express,它连续失败,直到上述修复。
正如其他人已经提到的,您需要修改 applicationhost.config
并放入其中
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
其他人没有提到的是,当您 运行 您的网络应用程序来自 Visual Studio 时, applicationhost.config
在项目根目录中的位置是
.vs\{your_project_name}\config\applicationhost.config
这是您需要修改的文件
我需要测试一个可以接受非常大文件的文件上传组件。我想在我的开发环境中进行本地测试,但由于我使用 IIS Express 而不是 IIS 7,我不确定在哪里进行全局更改。
在 IIS 7 中,无法通过 web.config 进行更改,但需要通过 IIS 管理器工具进行更改。有关示例,请参阅 this IIS article。
有谁知道如何使用 IIS Express 进行相同的全局更改(在 Visual Studio 2013 年)?
您可以在 web.config
中使用它<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
</system.webServer>
如果建议的 web.config 更改 ppascualv 不起作用,请尝试将其放入 IIS Express applicationhost.config,可在
%userprofile%\my documents\iisexpress\config\applicationhost.config
低于
<system.webServer>
放
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
这应该将其设置为全局,除非来自应用程序的 web.config 覆盖它。
基本上web.configmaxRequestLength
和maxAllowedContentLength
都需要设置才能上传文件
maxRequestLength
表示ASP.NET 支持的最大文件上传大小
maxAllowedContentLength
这指定了 IIS 支持的请求中内容的最大长度。
注意:maxRequestLength
以千字节为单位 & maxAllowedContentLength
以字节为单位
默认情况下,Machine.config 配置为接受最大 4096 KB (4 MB) 的 HTTP 请求,它反映在您的所有 ASP.NET 应用程序中。您可以直接更改 Machine.config 文件,也可以只更改您想要
的应用程序的 Web.config 文件<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
</system.webServer>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
</system.webServer>
由于请求 headers 太大,正在努力绕过“400 错误请求”,针对 Visual Studio 2019 的默认 IIS Express 实例,我无法获得 Sarah 的 solution to work, but found that the http.sys settings here 成功了。
具体来说,我在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\HTTP\Parameters
中创建了一个名为 MaxRequestBytes
的 DWORD 注册表值,并将其设置为足够大的值。对我来说,33000
就足够了。同样在同一个地方创建了MaxFieldLength
,并设置为33000
。必须重新启动计算机才能使设置生效。
至于我的问题的原因,描述的是here。它本质上是由放置在请求 headers 中的身份验证 cookie 引起的。推送到 Azure App Service 工作正常(headers 的限制可能是 32KB),但是对于本地 IIS Express,它连续失败,直到上述修复。
正如其他人已经提到的,您需要修改 applicationhost.config
并放入其中
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="524288000"/>
</requestFiltering>
</security>
其他人没有提到的是,当您 运行 您的网络应用程序来自 Visual Studio 时, applicationhost.config
在项目根目录中的位置是
.vs\{your_project_name}\config\applicationhost.config
这是您需要修改的文件