В одной из библиотек, которые мы используем в нашем приложении ASP. NET MVC, есть известная ошибка. Он случайным образом выдает очень конкретное c исключение, которое мы легко можем распознать.
Прямо сейчас, как "необработанное исключение", оно автоматически регистрируется в Windows Event Log в категории приложения. Это не критично и просто бесполезно мешает нашему мониторингу.
ВОПРОС: Как мы можем предотвратить регистрацию этого указанного c исключения Windows Журнал событий?
Что мы пробовали до сих пор:
(1) Мы попытались написать собственный фильтр, расширяющий HandleErrorAttribute
:
public class MyHandleErrorFilter : HandleErrorAttribute
{
public override void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception is VerySpecificException)
{
filterContext.ExceptionHandled = true;
filterContext.Exception = null;
return;
}
base.OnException(filterContext);
}
}
(2) Мы попытались написать пользовательский Application_Error
метод в global.asax.cs
:
protected void Application_Error(object sender, EventArgs e)
{
var exception = Server.GetLastError();
if (exception is VerySpecificException)
{
Server.ClearError();
Response.Clear();
Response.StatusCode = 404;
Response.End();
}
}
Оба решения работают должным образом (код выполняется при возникновении исключения), но, несмотря ни на что, исключение все еще сохраняется в Windows Журнал событий.
Есть ли что-то еще, что мы здесь упускаем? В приложении нет пользовательских регистраторов или чего-либо еще.