IIS7 НЕ возвращает HTTP 400 для неверного запроса - PullRequest
1 голос
/ 15 декабря 2010

У меня есть сайт MVC2, на котором мы проводим множество интеграционных тестов.Самое главное, мы проверяем поведение при использовании плохих URL.Например:

http://x.x.x.x/v1//Dy888/1/1234567815/swlocation?fv=24&sv2=3&sv3=5

(обратите внимание на две косые черты после "v1".)

Это должно привести к HTTP 400, Bad Request и в среде разработки(VS2008) все работает как запланировано.Но в тестовой среде IIS7 или MVC2 каким-то образом просматривают это и реагируют, как если бы был только один слеш.Кажется, он слишком «умный» и помогает нам переписать запрос.

Как я могу настроить свой сервер, чтобы он не был «умным» и действительно отвечал корректной ошибкой?

Тестовый сервер - Windows Server 2008 с IIS7.

Спасибо!- Никлас

1 Ответ

1 голос
/ 15 декабря 2010

http-код состояния 400 определяется следующим образом:

Запрос имеет неправильный синтаксис или по своей сути не может быть удовлетворен.

Наличие дополнительной косой черты вURI (который является только частью запроса в целом) не может быть справедливо классифицирован как синтаксическая ошибка запроса, и при этом это не делает невозможным удовлетворить запрос, так как дополнительный прямой слеш не меняет указанное местоположениепо URI.

Я думаю, что ваш веб-сервер разработки ведет себя неправильно и что предпосылка для вашего теста неверна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...