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

我正在建立一个网站,我想从textarea元素的值创建一个文件客户端。

我有代码来做到这一点,但我得到这个错误

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

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

如果没有,是否有办法生成文件客户端而不使用filesystem / active x对象?

谢谢


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

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

看到:

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

已更新以反映评论。

requestLimits请求过滤元素[IIS设置架构]

您可能还需要在web.config中添加以下内容

 <httpRuntime maxQueryStringLength="32768" maxUrlLength="65536"/>

请参阅:httpRuntime元素(ASP.NET设置架构)

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


在我的情况下(Visual Studio 2012 / IIS Express / ASP.NET MVC 4应用程序/ .Net Framework 4.5)在30分钟的试验和错误之后真正起作用的是在<httpRuntime>标记中设置maxQueryStringLength属性:

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

maxQueryStringLength默认为2048

更多关于它的地方:

扩大允许的URL范围


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

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


还有一件事要检查:如果您的网站使用MVC,如果您将[授权]添加到您的登录控制器类,则可能会发生这种情况。 它不能访问登录方法,因为它没有被授权,所以它重定向到登录方法 - >繁荣。

链接地址: http://www.djcxy.com/p/1115.html

上一篇: How to configure the web.config to allow requests of any length

下一篇: How long of a URL can Internet Explorer 9 take?