Вопрос

Есть ли способ фильтровать исключения в elma с помощью сообщения об исключении?

Примеры:
"Исключение System.Web.HttpException:Время ожидания запроса истекло ". Я не хочу отфильтровывать все HttpException, а только запросы с истекшим временем ожидания.
"Исключение System.Web.HttpException:Превышена максимальная длина запроса".

Чего я не хочу делать, так это писать для этого собственный код.Итак, возможно ли это сделать с помощью конфигурации buildin-web.config?

Спасибо!

Это было полезно?

Решение

Да, ты можешь.Просто используйте регулярное выражение для запроса сообщения.Смотрите приведенный ниже пример для получения подробной информации о том, как сравнить сообщение об исключении.

<errorFilter>
  <test>
    <!-- http://groups.google.com/group/elmah/t/cbe82cee76cc6321 -->
    <and>
      <is-type binding='Exception'
               type='System.Web.HttpException, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' />
      <regex binding='Exception.Message'
             pattern='invalid\s+viewstate'
             caseSensitive='false' />
      <regex binding='Context.Request.UserAgent'
             pattern='Trident/4(\.[0-9])*'
             caseSensitive='false' />
    </and>
  </test>
</errorFilter>

Другие советы

Вы можете настроить обработчик событий в вашем global.asax, чтобы избежать некрасивых настроек регулярных выражений конфигурации:

void ErrorMail_Filtering(object sender, Elmah.ExceptionFilterEventArgs e) 
{     
    if (e.Exception.Message.Contains("Request timed out"))
        e.Dismiss(); 
}

Видишь Фильтрация ошибок.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top