Поглядывая вокруг Я только что нашел эту ссылку: http://weblogs.asp.net/imranbaloch/archive/2010/04/23/understanding-400-bad-request-exception.aspx, где они говорят:
ASP.NET Ограничения:
ПослеПередача ограничений, навязанных режимом ядра http.sys, затем запрос передается в IIS, а затем в механизм ASP.NET, а затем снова запрос должен передать некоторое ограничение из ASP.NET для его успешного завершения.
ASP.NET допускает только длину пути URL до 260 символов (только пути, например http://a/b/c/d, здесь путь от a до d).Это означает, что если у вас длинные пути, содержащие 261 символ, вы получите исключение Bad Request.Это связано с ограничением пути к файлу NTFS.
Другое ограничение заключается в том, какие символы можно использовать в части пути URL-адреса. Можно использовать любые символы, кроме некоторых символов, поскольку они называются недопустимыми символами в пути.Вот некоторые из этих недопустимых символов в части пути URL, <,>, *,%, &,:, \,? .Для подтверждения этого просто щелкните правой кнопкой мыши на обозревателе решений и добавьте новую папку и назовите этот файл для любого из вышеперечисленных символов, вы получите сообщение.Файлы или папки не могут быть пустыми строками и не содержать только «.»или иметь любой из следующих символов .....
Для проверки описанной выше ситуации я создал веб-приложение и поместил Default.aspx в папку% A (созданную из проводника Windows), затем перейдите к,http://localhost:1234/A%25A/Default.aspx, что я получаю ответ от сервера, это исключение Bad Request.Причина в том, что% 25 является символом%, который является недопустимым символом пути URL в ASP.NET.Однако вы можете использовать эти символы в строке запроса.
Причина этих ограничений связана с безопасностью, например, с помощью% вы можете дважды кодировать часть пути URL и: используется для получения определенного ресурсас сервера.
Итак, я начинаю думать, что мою проблему невозможно решить.
Я уверен, что эта проблема отсутствует в некоторых веб-сервисах REST, написанных на PHP и размещенных наApache, так что я думаю, что это просто ограничение безопасности IIS / ASP, я не могу найти обходной путь для ...
ОБНОВЛЕНИЕ С ЗАКЛЮЧИТЕЛЬНЫМ РЕШЕНИЕМ:
Я нашел решение здесь : прочитайте статью, чтобы понять все.
Вы должны знать, что это может быть рискованно, поэтому подумайте хорошо, прежде чем использовать его.
<system.web>
<httpRuntime requestPathInvalidCharacters="" />
<pages validateRequest="false" />
</system.web>