Сигнал триггера 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;
}
}