HTTP 400:检测到无效字符的URL。 IIS太早解码网址是什么?发生了什么?发生了什么、太早、检测到、字符

2023-09-03 03:38:49 作者:古城小巷萌街少年

所以我有这样的网址: http://test.com/afolder/who-否则,要到化妆恐怖电影%3F /

So i have this URL: http://test.com/afolder/who-else-wants-to-make-horror-movies%3f/

这是URL连接的codeD版: http://test.com/afolder/who-else -wants到化妆恐怖电影?/

which is URL encoded version of : http://test.com/afolder/who-else-wants-to-make-horror-movies?/

但IIS7抛出一个400:

But IIS7 throws a 400:

HTTP错误400.0 - 错误的请求ASP.NET   在所检测到的无效字符   网址。

HTTP Error 400.0 - Bad Request ASP.NET detected invalid characters in the URL.

但为什么这样做,如果我有正确的连接codeD的网址是什么?

But why is it doing that if i have correctly encoded the URL?

我也有同样的问题与其他网址连接codeD字符如'/',这是'%2F',但是当.NET解决了处理它这样做,然后更改了有效路径URL解码后,grrrr。

I'm also having the same issue with other URL encoded chars like '/' which is '%2f' but when .net resolves the handler it does so after decoding the URL which then changes the effective path, grrrr.

推荐答案

貌似也有一些问题,IIS7在x64 ....不知道如果这是你的问题或不:

Looks like there are some issues with IIS7 on x64....not sure if this is your issue or not:

http://blogs.iis.net/rakkimk/archive/2008/10/10/asp-net-2-0-x64-you-may-get-http-400-bad-request-or-error-as-mentioned-in-kb-932552-or-826437.aspx