2016-05-13 2 views
4

У меня есть приложение API, работающее под службой Azure App Service, с установкой Application Insights для отслеживания телеметрических вызовов API на стороне сервера. При просмотре Application Insights на портале Azure я вижу два события для каждого вызова сервера. Каждое событие имеет точный дубликат с той же меткой времени, временем отклика, телеметрией и т. Д. Я проверил, что в журналах веб-сервера проверено только одно событие, поэтому я не случайно дважды вызываю одну и ту же функцию у клиента.Приложение Insights Reporting Duplicate Events для каждого запроса сервера

Вот несколько скриншотов для иллюстрации:

enter image description here

enter image description here

Что может быть причиной этого? И как я могу это исправить?

+0

Вы добавили какие-либо ручные приборы, такие как вызовы TrackRequest, или это просто автоматическая аппаратура, которую вы получаете, чтобы установить приложение Insights? Вы можете проверить, зарегистрирован ли HTTP-модуль отслеживания запросов приложений Insight в вашем web.config и только один раз? –

+0

AI добавлен автоматически Visual Studio. Существует несколько ручных инструментов в виде вызовов TrackTrace и TrackException, но вызовов TrackRequest нет. Я отправлю регистрацию AI из моего Web.config в следующий комментарий. –

+0

<добавить имя = "ApplicationInsightsWebTracking" тип = "Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> <удалить имя = "ApplicationInsightsWebTracking" /> <добавить имя = "ApplicationInsightsWebTracking" Тип = "Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" Precondition = "managedHandler" />

ответ

4

Существует один известный сценарий, который может привести к дублированию данных:

  1. Применение не onboarded к AI SDK развертывается как Azure Web App
  2. AI Extension устанавливается на приложение - > после этого шага вы начнете получать данные без необходимости изменять код
  3. Позже вы решили использовать более мощные функции ИИ, скажем, пользовательский отслеживание событий и встроенное приложение на AI от VS и , развертывается.

Теперь вы можете оказаться в ситуации, когда HTTP-модуль зарегистрирован дважды, и вы начинаете получать дублированные данные запроса. Это происходит потому, что пакеты AI nuget добавляют определение HTTP-модуля в web.config, но установка добавочного пакета добавляет дополнительную сборку в папку вашего приложения, которая динамически регистрирует модуль HTTP во время запуска приложения - Microsoft.AI.HttpModule.dll (Microsoft.ApplicationInsights.Extensibility.HttpModule .dll в предыдущих версиях). Чтобы правильно обработать этот случай, вам нужно удалить остатки остатков во время развертывания вашего приложения, выбрав «Настройки-> Удалить дополнительные файлы из пункта назначения» в случае развертывания из VS.

+0

Выбор опции «Удалить дополнительные форматы файлов» и повторное развертывание из Visual Studio решили проблему. Спасибо! –

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