2016-08-15 3 views
3

Я только что включил Application Insights в моем приложении MVC и заметил, что при локальном отладке информация о трассировке записывается в моем приложении Azure Application Insight.Application Insights в режиме отладки

В режиме отладки я хочу, чтобы мое приложение не записывало события в моем Azure Application Insight, но все же отображает информацию о событиях и регистрации в окне «Диагностические инструменты»> «События» в Visual Studio.

Я пробовал следующее, и в то время как это останавливает события от захвата в моем Azure AI, Visual Studio больше не отображает отладочную информацию в окне Events.

protected void Application_Start() 
{ 
     #if DEBUG 
     TelemetryConfiguration.Active.DisableTelemetry = true; 
     #endif 
} 

Я занялся сетью для ответа безрезультатно. Надеюсь, кто-то может помочь.

ответ

2

Самый дешевый способ сделать это - установить ключ Ключа для всех 0. Нет NULL iKey, поэтому он эффективно просто отбрасывает сообщение.

00000000-0000-0000-0000-000000000000 

Если вы хотите использовать Application_Start() вы можете сделать это, используя либо #DEBUG директиву, или вы можете использовать System.Diagnostics.Debugger.IsAttached свойство. Однако этот метод не является полностью надежным. Вы можете попробовать, но ваш опыт может быть непротиворечивым.

Если у вас есть время, вы должны сделать TelemetryInitializer, который изменит Ключ Instrumentation на основе того, прилагается ли отладчик или нет. Это позволит убедиться, что это произойдет только в том случае, если вы находитесь в сеансе отладки. Таким образом, если вы случайно выпустили Debug для производства, вы не потеряете свою телеметрию.

public class CustomeWebRequestTelemetryModule : Microsoft.ApplicationInsights.Extensibility.ITelemetryInitializer 
{ 
    public void Initialize(ITelemetry telemetry) 
    { 
     if (telemetry != null && System.Diagnostics.Debugger.IsAttached) 
     { 
      telemetry.Context.InstrumentationKey = "00000000-0000-0000-0000-000000000000"; 
     } 
    } 
} 
+0

Это работало отлично и это подход, который я искал. Спасибо. – jgill09

0

В чем проблема, связанная с отправкой телеметрии в приложение Insights? Например, у вас может быть отдельный ресурс Application Insights (идентифицированный ключом инструментария), который используется только для вашего процесса отладки, и когда на производстве, переключите ключ инструментария, чтобы указать на производственный ресурс.

В качестве альтернативы, мы недавно представили «локальный режим» - возможность использовать Application Insights в Visual Studio без подключения к Azure. В этом случае телеметрия с последнего сеанса отладки сохраняется на вашем локальном компьютере и доступна для поиска и интеграции в концентратор диагностики. См. Здесь: https://azure.microsoft.com/en-us/documentation/articles/app-insights-release-notes-vsix/#version-43

Я считаю, что для достижения этого вам нужно удалить ключ инструментария из applicationinsights.xml, но я не уверен на 100%. Попросите моих коллег добавить дополнительную информацию здесь ... Сообщите нам, если это то, что вы ищете. Олег

0

@DebugThings ответ будет (в основном) работы, хотя, если вы используете 0 'для Ikey, вы, вероятно, еще посылает телеметрии, но это, вероятно, также отвергнут бэкэндом AI как инвалид Айки.

Лично наилучшим решением было бы создать отдельный «отладочный» iKey, а в коде при построении в режиме отладки вместо этого использовать iKey.

protected void Application_Start() 
{ 
    #if DEBUG 
    TelemetryConfiguration.Active.InstrumentationKey = "your debug ikey"; 
    #endif 
} 

Таким образом, вы можете «отладки» любой телеметрия, что вы отправляете, не загрязняя производственной среды, а также в версии сборки, по-прежнему будет использоваться Айки в файле конфигурации.это позволяет вам убедиться, что вы отправляете правильные пользовательские свойства/показатели без использования фиксированного номера, который вы разрешили в это время.

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

https://blogs.msdn.microsoft.com/visualstudioalm/2015/01/07/application-insights-support-for-multiple-environments-stamps-and-app-versions/

есть аналогичный вопрос здесь с подобными ответами: Disable application insights in debug

Смежные вопросы