<httpRuntime requestValidationMode = "2.0" /> не работает (с использованием IIS 6.0)

Я получаю ошибки с приложением на нашем тестовом веб-сервере, на котором установлен.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 ответ

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

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
    filters.Add(new ValidateInputAttribute(false));
}
Другие вопросы по тегам