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

问题描述:

我正在建立一个网站,我想从textarea元素的值创建一个文件客户端。如何配置web.config允许任何长度的请求

我在的地方要做到这一点的代码,但我得到这个错误

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

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

如果不是,有没有办法生成文件客户端而不使用文件系统/活动x对象?

感谢

+4

你想要考虑的是即使查询字符串的长度可以配置为IIS或你的应用程序,也有一个HTTP标准的URL长度。由于您使用的是查询字符串,因此您将值作为URL的一部分传递。最大URL字符长度为2000个字符。如果你的值是冗长的字符串,最好是POST值而不是在查询字符串中传递它们。 – jlafay 2012-07-24 17:48:27

+1

同意Jlafay。当您有超过2-3个简单参数时,这是一个最佳实践。当你使用查询字符串时一定要加密它们。 – Jack 2013-05-24 07:14:03

以下内容添加到你的web.config:

参见:

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

更新,以反映意见。

requestLimits Element for requestFiltering [IIS Settings Schema]

您可能需要添加在你的web.config以下以及

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

参见:httpRuntime Element (ASP.NET Settings Schema)

当然在配置号码(32768和65536)上面的设置只是例子。您不必使用这些确切的值。

+18

这对我来说还不够。我还必须将此添加到system.web部分: 2013-07-23 10:58:17

+1

什么是'nnn'?这是行不通的。在那里使用整数32768。 – 2015-03-20 10:50:42

+2

nnn是您希望允许的最大字符串长度,例如32768 – 2015-03-20 17:37:04

在我的情况(的Visual Studio 2012/IIS快递/ ASP.NET MVC 4应用程序/ .NET框架4.5)试验的30分钟后,真正的工作和错误被设置maxQueryStringLength财产在<httpRuntime>标签:

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

maxQueryStringLength默认为2048

更多在这里:

Expanding the Range of Allowable URLs


我试着将它设置在<system.webServer>作为@MattVarblow建议,但它没有工作......这是因为我使用的是IIS快递(基于IIS 8)在我的开发机器上与Windows 8.

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

+1

对我来说,这是使= =真正的,使魔术发生:) – 2016-06-06 15:25:42

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

要解决此问题,请在源代码中的Form标签是否有一个属性method是获取/设置状态。

如果是这样,method属性应该被删除。

我有一个类似的问题,试图部署一个ASP Web应用程序到IIS 8.要解决它,我做了马特和Leniel上面的建议。但也必须配置我的网站的身份验证设置以启用匿名身份验证。那为我工作。

需要检查的其他内容:如果您的站点正在使用MVC,如果您向登录控制器类中添加了[Authorize],则可能会发生这种情况。它不能访问登录方法,因为它没有被授权,所以它重定向到登录方法 - >繁荣。

+0

谢谢!我遇到过这个问题,因为我将菜单/导航移到了部分视图,而另一个控制器不允许匿名连接。 – Jefecito 2016-08-21 01:19:20

+0

另一种情况是错误信息虽然属实,但与实际问题无关。 – 2018-02-21 12:46:24

我不得不在我的登录页面的ActionResult函数中添加[AllowAnonymous],因为用户还没有通过身份验证。

如果您的网站使用身份验证,但您没有在IIS中设置正确的身份验证方法(例如Basic,Forms等),那么浏览器将陷入重定向循环。这会导致重定向网址变得越来越长,直到它爆炸。