Elmah не регистрирует исключения для запросов http post в приложении MVC -, если запрос содержит XML

Я столкнулся со странной проблемой в своем приложении MVC4 (RC ). (работает на.NET 4.0)

Я только что настроил Elmah для регистрации исключений/ошибок.

В основном я установил пакеты NuGet Elmah.MVC и elmah.sqlserver . (версии 2.0.0 и 1.2 соответственно)

Вроде нормально работало "из коробки" -Я могу зайти на страницу elmah и просмотреть ошибки:

http://myserver/elmah

например, если я создам несколько ошибок 404, они появятся в этом журнале.

Что не работает, так это :. У меня есть стандартный контроллер MVC с действием [HttpPost]. Я настроил его так, чтобы он всегда выдавал исключение:

public class TestController : Controller
{
    [HttpPost]
    [ValidateInput(false)]
    public void Testing()
    {
        throw new Exception("uh oh");
    }
}

Затем я пытаюсь отправить данные в этот контроллер через jQuery :

$.post('/Test/Testing', {test_data: 'This is some test data'});

. Хорошо, это работает. Ответ возвращает типичный желтый экран смерти, и ошибка перехватывается и регистрируется в Elmah.

Однако,если я попытаюсь опубликовать что-то вроде XML/HTML, ошибка , а не , будет зарегистрирована в Elmah. Я все еще получаю тот же ответ от сервера обратно (желтый экран смерти ), но ничего в Elmah.

$.post('/Test/Testing', {test_data: 'This is some test data'});

Почему? Это не имеет смысла.

Обратите внимание, что я уже отключил проверку запроса для действия. Если бы я этого не сделал, публикация данных XML/HTML вызвала бы это исключение :

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

. NuGet также отказывается регистрировать это исключение -, которое, как я считаю, является ошибкой :

http://code.google.com/p/elmah/issues/detail?id=217

. Итак, в чем причина этой проблемы, с которой я сталкиваюсь? Это ошибка, связанная с проблемой, которую я нашел выше?

Просто кажется довольно неудачной ситуация, что я не могу регистрировать исключения только потому, что запрос содержит XML/HTML.

Наверняка есть способ обойти это?

12
задан asgeo1 24 July 2012 в 12:01
поделиться