<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));
}