<httpRuntime requestValidationMode = "2.0" /> не работает (с использованием IIS 6.0) - PullRequest
9 голосов
/ 31 августа 2010

Я получаю ошибки с приложением на нашем тестовом веб-сервере, на котором установлен .NET 4.0, когда я ввожу HTML в форму.Я получаю обычные ошибки:

Потенциально опасное значение Request.Form обнаружено клиентом

Это вызвано изменением в .NET 4.0, которое отключаетотключение автоматической проверки для ввода HTML.Я могу исправить это на своей локальной машине разработки, добавив директиву

<httpRuntime requestValidationMode="2.0" />

в раздел <system.web> моего корневого web.config, и .NET затем соблюдает директиву <pages validateRequest="false" />, находящуюся в том же корне.web.config.Странно, но мне нужно было перезапустить IIS на моем локальном компьютере (версия 5.1), чтобы это изменение заработало.

Однако, когда я развертываю корневой web.config на нашем тестовом сервере, я все еще получаю подтверждениеошибки.Я попытался использовать run > iisreset, остановить и запустить IIS (версия 6.0 на тестовом сервере), и я даже перезапустил сервер, чтобы полностью очистить .NET.Мое приложение определенно получает новый корневой web.config (я проверял это), однако директива <httpRuntime requestValidationMode="2.0" />, похоже, просто игнорируется.

Мое приложение настроено как приложение .NET 4.0 на обоихмоя локальная машина и на тестовом сервере.Я попытался пересобрать приложение и развернуть его на тестовом веб-сервере.Кто-нибудь может подсказать, что мне нужно сделать, чтобы это работало?

Заранее спасибо, Крис

1 Ответ

3 голосов
/ 06 ноября 2012

Если вы используете MVC3, попробуйте добавить глобальный фильтр в Global.asax.cs.

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new ValidateInputAttribute(false));
}
...