请求 URL 在 IIS 7 中无效

问题描述 投票:0回答:3

这是我的网址

http://abc.domain.com/controller/action/A74444C3A7FA858C7995CA9954CBCF1E26604634767C5575396D908E8415CF8CCC04C05F49FED0AA9D9743B69ABF232BDE9787A5222D081 DA638896C0D2379A673E1747A2FFE1158F14AF098B2899D2ABEB4EA738D89369627 E479796B6B2B9EA9B247CC59EF10E3A88B6A56A87F0818E2AD2A942FFA31F1C941BB 7AF6FDC55FE6733353F28DFAC1827688604CBFBAB4856E6C75F810D13923F9D913F51F5B02980163E6CD63BC04610AD2C12E07360D7BC2C69F1B0CD03E

URL 本身不存在无效字符,因为所有内容都已加密。我仍然得到

错误请求 - 无效 URL HTTP 错误 400。请求 URL 无效。

我知道 URL 非常长,我可以通过添加以下内容来解决我的卡西尼号中的该问题 httpRuntime maxUrlLength =“512”

在 web.config 中

然而,在 IIS7 中,即使在尝试了 requestfiltering maxurl 和 maxquerystring 值之后,我仍无法解决此问题。

这是一个 asp.net mvc 3 应用程序。

asp.net asp.net-mvc-3 iis-7 httprequest
3个回答
31
投票

答案是将长 URL 段传输为查询字符串,这样更容易处理。

然而,问题是 HTTP.sys 甚至不让请求通过,因为 URL 的一段超过了 260 个左右的字符。但我们还是要支持。

您可以在注册表中更改该设置。重新启动后,该 URL 将起作用。

注册表:

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

这将有效地将段长度设置为1024。您可能需要创建密钥;如果不存在,则应用默认值 (260)。

来源


18
投票

您的问题是您没有使用查询字符串,而是使用路径。路径的最大长度为 255。


© www.soinside.com 2019 - 2024. All rights reserved.