如何配置 web.config 以允许任何长度的请求

我正在构建一个网站,我想在其中从文本区域元素的值创建一个文件客户端。

我有代码来执行此操作,但我收到此错误

HTTP 错误 404.15 - 未找到 请求筛选模块配置为拒绝查询字符串过长的请求。

有没有办法覆盖它,以便我能够处理任何大小的请求?

如果没有,有没有办法在不使用文件系统/活动x对象的情况下在客户端生成文件?

谢谢


答案 1

将以下内容添加到您的 web.config 中:

<system.webServer>
  <security>
    <requestFiltering>
      <requestLimits maxQueryString="32768"/>
    </requestFiltering>
  </security>
</system.webServer>

看:

http://www.iis.net/ConfigReference/system.webServer/security/requestFiltering/requestLimits

已更新以反映注释。

requestLimits 用于 requestFiltering [IIS Settings Schema]

您可能还必须在 web.config 中添加以下内容

<system.web>
    <httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>
</system.web>

请参见:http运行时元素(ASP.NET 设置架构)

当然,上面配置设置中的数字(32768 和 65536)只是示例。您不必使用这些确切的值。


答案 2

在我的情况下( Visual Studio 2012 / IIS Express / ASP.NET MVC 4 app / .Net Framework 4.5 ),经过30分钟的反复试验后,真正起作用的是设置标签中的属性:maxQueryStringLength<httpRuntime>

<httpRuntime targetFramework="4.5" maxQueryStringLength="10240" enable="true" />

maxQueryStringLength默认为 。2048

更多关于它在这里:

扩展允许的 URL 范围


我尝试按照@MattVarblow建议设置它,但它不起作用...这是因为我在Windows 8的开发计算机上使用IIS Express(基于IIS 8)。<system.webServer>

当我将应用部署到生产环境(Windows Server 2008 R2 与 IIS 7)时,IE 10 开始在具有长查询字符串的 AJAX 请求中返回 404 个错误。然后我认为问题与查询字符串有关,并尝试@MattVarblow的答案。它刚刚在IIS 7上运行。:)