我有一个iPad应用程序,它向.NET应用程序发送数据。iPad应用程序是由一群猴子编写的,他们将所有请求都实现为GET而不是POST。
应用程序现在正在运行,客户端的数据正在发送超过20k个字符的请求,这给了我这个响应(使用Safari,它已经被测试用于至少80k字符的URL):
如果请求超过了web.config中的requestFiltering/maxURL值,我将得到详细的IIS响应,如下所示:
由于我得到的是通用错误消息,而不是IIS特定的消息,这让我认为这并不是因为我可以在配置设置中修复一些东西(为了安全起见,我将maxURL设置为20亿)。
我知道请求应该使用POST,但目前我没有时间重写iPad应用程序,而且我的所有研究都只找到了一些无用的响应,比如"you to limit GET requests to 2K字符“"you 应当使用POST而不是GET”。如果这是你唯一的反馈,请不要费心回答。(例如,我知道这个问题及其答案。)
我需要知道我是否能快速解决这个问题,直到我有时间用正确的方式完成它。我还想知道是否有人知道来自iOS或IIS端的URL长度的严格限制,因为我找不到任何细节。
编辑:我的httpRuntime参数也被设置为接受远超过20k的字符。
发布于 2014-06-18 10:15:05
我知道这是个老问题,但万一有人会像我昨天那样面对它--设置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长度的限制。
发布于 2013-05-17 02:06:49
如果您在多个客户端中看到这种情况,则可能是您的服务器设置。在.NET 4.0的httpRuntime部分中,maxUrlLength和maxQueryStringLength的最大值都是32位有符号整数,即2147483647。
<httpRuntime maxUrlLength="2147483647" maxQueryStringLength="2147483647" />https://stackoverflow.com/questions/16600113
复制相似问题