Сбой Application Insights с System.Reflection.TargetInvocationException при загрузке — WP 8.1

Я начинаю изучать Application Insights и пытаюсь добавить его в свое приложение для Windows Phone 8.1. При попытке выполнить проект возникает исключение при загрузке в Public Sub New() в App.xaml.vb. Строка, в которой происходит ошибка,

TelemetryClient = new TelemetryClient()

Выброшенное исключение

Возникло первое случайное исключение типа «System.Reflection.TargetInvocationException» в mscorlib.ni.dll.

Исключение типа «System.Reflection.TargetInvocationException» возникло в mscorlib.ni.dll, но не было обработано в пользовательском коде.

Дополнительная информация: цель вызова сгенерировала исключение.

Детали внутреннего исключения:

{System.InvalidOperationException: тип «Microsoft.ApplicationInsights.Extensibility.ComponentContextInitializer, Microsoft.ApplicationInsights, версия = 0.16.1.418, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35» не реализует требуемый интерфейс

Microsoft.ApplicationInsights.Extensibility.IContextInitializer. в Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.CreateInstance(Type interfaceType, String typeName) в Microsoft.ApplicationInsights.Extensibility.Implementation.TelemetryConfigurationFactory.LoadInstance(определение XElement, ожидаемый тип Type, экземпляр объекта) в Microsoft.ApplicationInsights.Extensibility.Implementation. TelemetryConfigurationFactory.LoadInstances[T] (определение XElement, экземпляры ICollection`1)}

Я выполнил шаги, описанные в документации Azure< /а>. Что я могу делать неправильно?


person Jay    schedule 03.05.2015    source источник
comment
Что это было за InnerException? TargetInvocationException всегда есть. (Он говорит вам, что на самом деле произошло в рефлективно вызванном методе.) Нам также может помочь просмотр какого-то другого кода в New().   -  person Ben N    schedule 04.05.2015
comment
Я добавил детали внутреннего исключения для справки. Что касается другого кода в New(), это первая строка, за которой следует InitializeComponent().   -  person Jay    schedule 04.05.2015
comment
Настроен ли ваш отладчик на прерывание при возникновении исключений первого шанса? Что произойдет, если вы просто продолжите выполнение после того, как возникнет исключение?   -  person Ben N    schedule 04.05.2015
comment
Я считаю, что он отключен, но я могу ошибаться. Ни один из «Выброшенных» не отмечен в моих настройках отладчика. Если я продолжу, приложение вылетит, не выполнив следующую строку кода.   -  person Jay    schedule 04.05.2015


Ответы (2)


Вы используете приложение Windows Phone поверх среды выполнения Windows или поверх Silverlight?

Если вы удалите следующую строку из ApplicationInsights.config, запустится ли ваше приложение успешно?

    <Add Type="Microsoft.ApplicationInsights.Extensibility.ComponentContextInitializer, Microsoft.ApplicationInsights"/>
person izik lisbon    schedule 05.05.2015
comment
Это приложение Runtime. Удаление строки ничего не меняет, и он все равно вылетает. - person Jay; 05.05.2015
comment
Последний NuGet больше не использует using. Вместо этого он добавляет: TelemetryClient = new Microsoft.ApplicationInsights.TelemetryClient() Таким образом, похоже, что вы не используете последнюю версию. Можете ли вы попробовать запустить новый проект и убедиться, что вы устанавливаете этот NuGet: nuget.org/packages/Microsoft.ApplicationInsights.WindowsApps/ - person izik lisbon; 07.05.2015
comment
да. Предварительный выпуск последней версии 0.16 сборки 418 от 1 мая 2015 г. Все еще не повезло и получил то же исключение. - person Jay; 08.05.2015
comment
Обновление. Один обходной путь, который я нашел, заключался в том, чтобы дважды создать экземпляр TelemetryClient, причем первый в блоке Try Catch. Я хотел бы, чтобы он был чистым без необходимости двух экземпляров. - person Jay; 08.05.2015
comment
Можешь поделиться своим проектом? Я не могу получить реплику? - person izik lisbon; 09.05.2015

Оказывается, это было поврежденное решение. Я добавил nuget, а затем добавил Application Insights. Между тем я обновил пакет nugget до предварительной версии 0.16. По сути, он создал несколько ссылок. Поэтому я вручную очистил все записи Microsoft.ApplicationInsights в package.config и .vbproj. Я также удалил все ссылки и снова сослался на все это. Теперь это работает как шарм!

person Jay    schedule 20.05.2015