Как сделать так, чтобы приложение игнорировало отмену - PullRequest
0 голосов
/ 14 января 2020

Дает код ответа 500, когда пользователь нажимает кнопку отмены нескольких типов.

Не вызывает проблем с производительностью, а просто создает беспорядок в понимании приложений.

Любой способ отфильтровать это будет полезно.

В телеметрии также не отображается ничего для совместного использования, только метод API, вызываемый с кодом 500 и временем. делиться скриншотом этого. is

1 Ответ

0 голосов
/ 21 января 2020

Поскольку вы знаете, что код ответа 500, вы можете использовать процессор телеметрии для фильтрации запросов такого типа с кодом 500.

Предположим, вы используете . NET core , вы можете выполнить следующие шаги:

Создать класс, который реализует ITelemetryProcessor, затем отфильтровать запрос с кодом ответа 500 (или более условий в соответствии с вашими потребностями.). Пример кода выглядит следующим образом:

public class IgnoreCancelFilter : ITelemetryProcessor
{
    private ITelemetryProcessor Next { get; set; }

    // next will point to the next TelemetryProcessor in the chain.
    public IgnoreCancelFilter(ITelemetryProcessor next)
    {
        this.Next = next;
    }

    public void Process(ITelemetry item)
    {
        var request = item as RequestTelemetry;

        if (request != null &&
        request.ResponseCode.Equals("500", StringComparison.OrdinalIgnoreCase))
        {
        // To filter out an item, return without calling the next processor.
        return;
        }

    // Send everything else
    this.Next.Process(item);
   }

}

Затем зарегистрируйте его в ConfigureServices методе вашего Startup.cs класса.

public void ConfigureServices(IServiceCollection services)
{
    // ...
    services.AddApplicationInsightsTelemetry();
    services.AddApplicationInsightsTelemetryProcessor<IgnoreCancelFilter>();

}

Если язык программирования не . NET core , вы можете найти подходящий метод для. NET framework / js et c. в этой статье .

...