我有一个向 .NET 应用程序发送数据的 iPad 应用程序。 iPad 应用程序是由一群猴子编写的,他们将所有请求都实现为 GET 而不是 POST。
该应用程序现已上线,客户端数据发送超过 20k 个字符的请求,这给了我这个响应(使用 Safari,它已经过测试可以处理至少 80k 个字符的 URL):
Generic 414 Error
如果请求超过了 web.config 中的 requestFiltering/maxURL 值,我将得到的不是详细的 IIS 响应,如下所示:
IIS 414.14 Error
由于我收到的是通用错误消息而不是特定于 IIS 的消息,这让我认为这不是由于我可以在配置设置中修复的问题(我将 maxURL 设置为 20 亿,只是为了安全...... .)
我知道请求应该使用 POST,但我现在真的没有时间重写 iPad 应用程序,而且我所有的研究都只是出现了无益的回复,上面写着“你 应该 将 GET 请求限制为 2K 个字符”“您应该使用 POST 而不是 GET”。如果这是您唯一的反馈,请不要费心回答。 (例如,我知道 this question 和它的答案。)
我需要知道是否可以快速解决此问题,直到我有时间以正确的方式执行此操作。而且我还想知道是否有人知道来自 iOS 或 IIS 端的硬限制 URL 长度,因为我找不到任何细节。
编辑:我的 httpRuntime 参数也设置为接受超过 20k 个字符。
Best Answer-推荐答案 strong>
我知道这是一个旧的,但万一有人会像我昨天那样面对它 - 设置 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 服务才能使这些 key 正常工作。 重新启动后,我已成功发送查询字符串长度为 ~ 的请求32k 个字符(不知道为什么只有 ~32k,也许是字符编码?)。所以我猜这是 Windows 2003 及更高版本中 URL 长度的限制。
关于ios - 请求 URL 太长(20K 个字符) IIS 7,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/16600113/
|