Необработанное исключение, чтобы не войти в appinsights - PullRequest
0 голосов
/ 09 июля 2019

У меня есть сайт в asp.net aspx.У меня есть обработчик HTTP.Если есть какое-либо необработанное исключение, функция application_error в обработчике HTTP перехватывает его.Затем он также отправляется в Application_Error в global.ascx.

Я настроил приложение insights.config для регистрации всех исключений в аналитических данных Azure App.То, что я хочу, - это то, что какое-то конкретное исключение, такое как maxURLsize, не должно регистрироваться в моём понимании приложения Azure.

Я пробовал вещи ниже, но это не работает.1. HttpContext.Current.Server.ClearError ();в функции Application_Error 2. System.Diagnostics.Debug.Assert (false);в событии application_Error в обработчике Http.

1 Ответ

1 голос
/ 09 июля 2019

Вы можете использовать ITelemetryProcessor .

Если вы знаете имя исключения, например, maxURLsize, то в своем пользовательском классе процессора телеметрии вы можете использовать приведенный ниже код (вы также можете комбинировать другие свойства в соответствии с вашими потребностями):

    public class MyErrorFilter: ITelemetryProcessor
    {
        private ITelemetryProcessor Next { get; set; }
        public MyErrorFilter(ITelemetryProcessor next)
        {
            this.Next = next;
        }
        public void Process(ITelemetry item)
        {           

            var exceptions = item as ExceptionTelemetry;

            if (exceptions != null && (exceptions.Exception.GetType().Name.ToLower() == "maxURLsize".ToLower()))
            {                
                return;
            }

            this.Next.Process(item);
        }
    }

затем зарегистрируйте его в соответствии с указанным выше документом.

...