IIS7.5 400 Неверный запрос, когда URL-адрес включает символ:

Я использую ARR и ISAPI с IIS7.5. Всякий раз, когда пересылается URL-адрес, включающий определенный символ: 400 Неверный запрос. Как я могу это решить?

Я предполагаю, что в ARR и ISAPI нет проблем, потому что нет проблем на сервере разработки (тот же Env, что и на рабочем сервере), он возникает только на рабочем сервере.


person Seongjae Joung    schedule 20.12.2013    source источник


Ответы (2)


По умолчанию IIS 7.5 отклоняет определенные символы в пути — по умолчанию используется следующий список, разделенный запятыми: <,>,*,%,&,:,\\. Если запрос попадет в этот список, он вернет ошибку http 400, поскольку запрос неверен, поскольку сервер настроен. См. этот сообщение в блоге и эту страницу MSDN для небольшой предыстории. В частности, вы, вероятно, захотите обновить конфигурацию httpRuntime примерно так:

<httpRuntime requestValidationMode="2.0"
             requestPathInvalidCharacters="&lt;,&gt;,*,%,&amp;,\"
             />
person Wyatt Barnett    schedule 20.12.2013
comment
Как я могу использовать requestValidationMode в ASP2.0? - person Seongjae Joung; 20.12.2013
comment
IIS 7.5 запускает все через управляемый конвейер, просто добавьте его в файл web.config в папке. - person Wyatt Barnett; 20.12.2013
comment
Это не работало на ASP2.0, когда я добавил его в web.config. Работаю на ASP4.0. Есть ли другие варианты, работающие на ASP2.0? - person Seongjae Joung; 14.01.2014

Символ : разрешен только в URL-адресах как часть IPv6-адреса. Либо закодируйте его как %3A, либо не используйте его.

Ссылку можно найти в RFC3986.

person Community    schedule 20.12.2013