Сигнал триггера System.InvalidOperationException в Microsoft.ApplicationInsights.dll - PullRequest
0 голосов
/ 21 мая 2018

Сигнал триггера SignalR System.InvalidOperationException в Microsoft.ApplicationInsights.dll каждую секунду.

Как я могу использовать SignalR с информацией о приложении?

Похоже, это связано с базовой панелью SQL: Microsoft.AspNet.SignalR.SqlServer

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

        public UnwantedTelemetryFilter(ITelemetryProcessor next)
        {
            this.Next = next;
        }

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

            if (request != null && request.Name != null)
                if (request.Name.Contains("signalr"))
                    return;

            var dependency = item as DependencyTelemetry;
            if(dependency != null)
            {
                switch(dependency.Type)
                {
                    case "SQL":
                        if(String.IsNullOrEmpty(dependency.Data))
                        {
                            return;
                        }

                        break;
                }
            }

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

        public static void Set()
        {
            var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
            builder.Use((next) => new UnwantedTelemetryFilter(next));
            builder.Build();
        }
}

Информация об ошибке:

Stacktrace:
at Microsoft.ApplicationInsights.Extensibility.Implementation.Metrics.DependencyMetricsExtractor.ExtractMetrics(ITelemetry fromItem, Boolean& isItemProcessed)

Error:
    Message "Cannot execute ExtractMetrics because this metrics extractor has not been initialized (no metrics manager)."   string

Так я запускаю Application Insights.Это выполняется в Application_Start.

    public static void SetApplicationInsights()
    {
        #if(DEBUG)
            Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.TelemetryChannel.DeveloperMode = true;
        #endif

        Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.DisableTelemetry = true;
        string t = Settings.KeyVault.Global.GetKey("AppInsightsInstrumentationKey");
        if (!String.IsNullOrEmpty(t))
        {
            UnwantedTelemetryFilter.Set();
            Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = t;
            Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.DisableTelemetry = false;

        }
    }

1 Ответ

0 голосов
/ 12 июня 2018

Учитывая новое сообщение, которое вы добавили с информацией об ошибке, вы, похоже, столкнулись с этой проблемой GitHub:

Проблема GitHub # 549: DependencyMetricsExtractor.ExtractMetrics вызвала исключения

где это выглядит, если вы вручную добавили процессоры телеметрии с помощью кода, вам нужно вызвать инициализацию на них?

похоже, что эта конкретная проблема была исправлена ​​пару месяцев назад, возможно, вам придется обновить ее до более новой версииSDK, или используйте обходные пути, указанные в этом выпуске

...