Как добавление Microsoft.ApplicationInsights NuGet для проекта. Net WebAPI мешает активации AI через портал Azure? - PullRequest
2 голосов
/ 04 марта 2020

BASI C ОПИСАНИЕ / КОНФИГУРАЦИЯ:

У нас есть. Net Framework 4.6.1 (на основе ServiceStack) WebAPI, размещенный как Azure WebApp в облаке. Каждая релиз-версия нашего API имеет собственную конечную точку телеметрии Application Insights, но мы никогда не активируем Application Insights для нашего проекта в Visual Studio. Вместо этого, после обмена новой выпускаемой версией с промежуточного на производственный слот, мы активируем Application Insights через портал Azure, и тем самым мы автоматически получаем всю телеметрию запросов, которая нам нужна, из коробки. В разделе конфигурации нашего WebApp я вижу, что были добавлены некоторые AI-специфицированные c ключи, наиболее важно «APPINSIGHTS_INSTRUMENTATIONKEY».

Раньше это работало нормально. Теперь мне нужно было реализовать функцию, чтобы можно было отправлять некоторую пользовательскую информацию из нашего кода для понимания приложения. Для этого я добавил в наш проект Microsoft.ApplicationInsights NuGet пакет (2.13.1). В нашем первом сценарии я отправляю пользовательское исключение через:

_telemetryClient.TrackException(…) 

Для тестирования новой функции я создал ресурс Development Application Insights в облаке и добавил соответствующий ключ инструментария в наш app.config. Это работает, как и ожидалось, и я вижу исключение, которое я отправляю здесь в инстанс AI в облаке.

СЕЙЧАС ПРОБЛЕМА:

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

1. ) Как все-таки собираются данные запроса при активации ИИ через портал? Я не могу найти какие-либо библиотеки DLL, которые будут добавлены в наше приложение, поэтому я полагаю, что IIS-сервер, на котором размещено наше веб-приложение, собирает и передает данные?

2.) Обнаруживает ли сервер, что существует Microsoft.ApplicationInsights.dll в нашем коде и тем самым прекратить сбор данных запроса, потому что он ожидает, что мы сами обработаем это в нашем коде?

Основная причина, по которой я не хочу просто активировать приложение с полным стеком Особенность Insights для нашего проекта в Visual Studio состоит в том, что он устанавливает много зависимостей, которые запускают DLL-ад, потому что нам нужны более старые версии для этих библиотек для других зависимостей в нашем приложении (например, System. Net .Http)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...