The request URL is invalid in IIS 7

2019-03-25 06:56发布

here is my URL

http://abc.domain.com/controller/action/A74444C3A7FA858C7995CA9954CBCF1E26604634767C5575396D908E8415CF8CCC04C05F49FED0AA9D9743B69ABF232BDE9787A5222D081DA638896C0D2379A673E1747A2FFE1158F14AF098B2899D2ABEB4EA738D89369627E479796B6B2B9EA9B247CC59EF10E3A88B6A56A87F0818E2AD2A942FFA31F1C941BB7AF6FDC55FE6733353F28DFAC1827688604CBFBAB4856E6C75F810D13923F9D913F51F5B02980163E6CD63BC04610AD2C12E07360D7BC2C69F1B0CD03E

There are no invalid characters in the URL itself as everything is encrypted. Still I am getting

Bad Request - Invalid URL HTTP Error 400. The request URL is invalid.

I know the URL is awfully long and I was able to resolve that issue in my Cassini by adding this httpRuntime maxUrlLength="512"

in the web.config

However in IIS7 even after playing around with the requestfiltering maxurl and maxquerystring values I have not been able to resolve this.

This is an asp.net mvc 3 application.

3条回答
\"骚年 ilove
3楼-- · 2019-03-25 07:28

This one is for posterity and for tracking my own problem. It's been said in another answer however, not as explicitly.

I've had the same problem on my end. The answer is of course to transfer the long URL segment to a Query string. Easier to handle.

The problem however is that HTTP.sys is not even letting the request through because a segment of the URL is exceeding 260 or so characters. However, we still had to support it.

You can change that setting in the registry. Once you reboot, the url will work.

Registry:

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

This will effectively set the segment length to 1024.

Source

查看更多
我欲成王,谁敢阻挡
4楼-- · 2019-03-25 07:49

Your problem is you're not using a query string, but a path. A path has a maximum length of 255.

查看更多
登录 后发表回答