Полная цитата, на которую ссылается darth_phoenixx, на самом деле гласит:
TelemetryClient является потокобезопасным.
Для проектов ASP.NET и Java входящие HTTP-запросы перехватываются автоматически. Возможно, вы захотите создать дополнительные экземпляры TelemetryClient для другого модуля вашего приложения. Например, у вас может быть один экземпляр TelemetryClient в классе ПО промежуточного слоя для сообщения о событиях бизнес-логики. Вы можете установить такие свойства, как UserId и DeviceId, для идентификации машины. Эта информация прикрепляется ко всем событиям, отправляемым экземпляром.
TelemetryClient.Context.User.Id = "...";
TelemetryClient.Context.Device.Id = "...";
Последний штрих чрезвычайно важен. Если вы пишете что-то вроде веб-приложения, где UserId может измениться, вам, вероятно, следует повторно использовать экземпляр клиента телеметрии для каждой области, в которой все эти значения будут одинаковыми (например, каждый запрос), но не как статический/одиночный экземпляр.
Обновлять
В ASP.NET Core Application Insights интенсивно использует внедрение зависимостей и регистрирует TelemetryClient как синглтон!
Это означает, что вам следует избегать установки переменных в контексте клиента, которые вы не хотите использовать во всем приложении, и вместо этого использовать инициализаторы телеметрии для установки таких вещей, как идентификатор пользователя, для каждого объекта телеметрии.
person
StriplingWarrior
schedule
20.08.2018