请求URL太长(20K字符)IIS 7

时间:2013-05-17 01:34:38

标签: ios iis-7

我有一个iPad应用程序,可以将数据发送到.NET应用程序。 iPad应用程序是由一群猴子编写的,他们将所有请求都实现为GET而不是POST。

应用程序现在正在运行,并且客户端的数据正在发送超过20k个字符的请求,这给了我这个响应(使用Safari,已经过测试,可以处理至少80k字符的URL):

Generic 414 Error

如果请求超出web.config中的requestFiltering / maxURL值,我会得到详细的IIS响应,如下所示:

IIS 414.14 Error

由于我收到通用错误消息而不是特定于IIS的消息,因此我认为这不是由于我可以在配置设置中修复的内容(我将maxURL设置为20亿,只是为了安全.. 。)

我知道请求应该是使用POST,但我现在没有时间重写iPad应用程序,而且我的所有研究都只发出了无用的回复,说“你应该< / strong>将GET请求限制为2K个字符“”你应该使用POST而不是GET“。如果这是您的唯一反馈,请不要打扰回答。 (例如,我知道this question并且它是答案。)

我需要知道是否可以快速解决方法来完成此功能,直到我有时间以正确的方式执行此操作。而且我也想知道是否有人知道来自iOS或IIS方面的硬限制URL长度,因为我找不到任何细节。

编辑:我的httpRuntime参数也设置为接受超过20k个字符。

2 个答案:

答案 0 :(得分:5)

我知道这是一个旧的,但如果有人像我昨天那样面对它 - 设置web.config参数对我也没有帮助。我发现的是这篇MS文章:http://support.microsoft.com/kb/820129/en-us 我已经向 HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Services \ HTTP \ Parameters 添加了两个DWORD键:

  

MaxFieldLength = 65534
  MaxRequestBytes = 100000

注意:您需要重新启动服务器或至少使用HTTP服务才能使这些密钥正常工作。
重新启动后,我设法发送查询字符串长度最多为〜的请求32k字符(不知道为什么只有~32k,可能是字符编码?)。所以我想这是Windows 2003及更高版本中URL长度的限制。

答案 1 :(得分:-1)

如果您在多个客户端中看到此信息,则可能是您的服务器设置。在.NET 4.0的httpRuntime部分中,maxUrlLengthmaxQueryStringLength的最大值都是32位有符号整数,或2147483647

<httpRuntime maxUrlLength="2147483647" maxQueryStringLength="2147483647" />