【问题标题】:IIS 7.0 increase the URL size limitIIS 7.0 增加 URL 大小限制
【发布时间】:2013-11-08 08:59:05
【问题描述】:

当客户向我的网站付款时,我的网页会收到来自付款处理器的通知。

通知以 GET 提交的形式到达,因此 URL 可能很长。我对通知的发送方式没有管辖权,所以我不能简单地将其更改为 POST 提交,这将解决我的所有问题。

问题是有时由于 URL 太长而没有收到通知。它只是勉强限制了允许的范围,因为如果我将 URL 缩短 15 个字符,我就可以成功连接。

我已尝试更改 Windows 注册表中的 UrlSegmentMaxCount,但问题仍然存在。

有谁知道如何配置我的 IIS 托管 php 站点以允许更长的 GET 请求?

编辑

这是我尝试过的。

如果是 php 问题,我在 .htaccess 文件中添加了以下行:

php_value suhosin.get.max_value_length 2048

并尝试修复我在注册表中添加的任何 Windows 问题:#

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters] "UrlSegmentMaxLength"=dword:00001000

【问题讨论】:

  • 你确定问题是 IIS 而不是 PHP?
  • 嗯,实际上,不,我不是。你能建议我如何检查我的 PHP 限制吗?
  • 计算字符有 2081 个,这意味着它达到了 2000 个字符的限制
  • request filtering 是否启用? maxQueryStringmaxUrl 可能是一个限制。
  • IIS 不使用.htaccess 文件,而是使用web.config

标签: php url iis get


【解决方案1】:

request filtering 是否启用?如果是尝试更改 maxQueryStringmaxUrl 参数,看看这是否是限制您的原因。

【讨论】:

  • 解决问题:在 IIS 中 -> 在左侧连接窗格中的“站点”下单击我的站点 -> dbl 单击请求过滤(在主内容窗格中的 IIS 下)-> 在“操作”下' 在右侧窗格中单击“编辑功能设置”-> 在结果弹出窗口中将“最大 URL 长度”和“最大查询字符串”加倍。
  • 检查查询字符串中是否有“选择”、“更新”、“删除”等词。您可以有一个名为“SQL_INJECTION_MITIGATION”的“过滤规则”来阻止弹出窗口。
【解决方案2】:

查看 web.config 文件中的 ma​​xUrlLength 设置。如果未定义,您可以使用 httpRuntime 设置增加 URL 中允许的最大字符数:

<configuration>
  <system.web>
    <httpRuntime maxUrlLength="500" />
  </system.web>
</configuration>

这会将默认的 260 个字符增加到 500 个。

(来源:http://www.saotn.org/the-length-url-request-exceeds-configured-maxurllength-value/) - 使用“Answer”添加 web.config 配置代码。

【讨论】:

  • 好电话,但不幸的是问题仍然存在
  • @KevinBradshaw 是否可以在此处或在 pastebin 上发布示例?也许我可以在测试环境中重现该问题。
  • 感谢提供,但问题已通过更改请求过滤中的参数解决。
  • @KevinBradshaw 太好了,你解决了。请更新您的问题或添加答案。和requestfiltering/requestlimits 有关系吗
  • 我已经要求@FDL 将他的评论升级为答案以接受它,如果他不想这样做,我会自己添加答案。
猜你喜欢
  • 2023-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-28
  • 2023-03-09
  • 1970-01-01
  • 2019-02-27
  • 1970-01-01
相关资源
最近更新 更多