Я работаю над функцией Azure.Я использую Microsoft.Azure.Devices.Shared, который требует NewtonSoft v11, поэтому я реализовал некоторые ручные перенаправления привязки с доменом приложения, который, кажется, работает (см. Ниже).Но почему-то существует жесткая ссылка на домен приложения WebJob, с которым конфликтует NewtonSoft, если я правильно читаю приведенный ниже журнал:
2018-05-21T22: 03: 03.824 [Info] Исключение: [A] Newtonsoft.Json.Linq.JObject не может быть приведен к [B] Newtonsoft.Json.Linq.JObject.Тип A происходит от 'Newtonsoft.Json, Версия = 9.0.0.0, Культура = Нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed' в контексте 'По умолчанию' в расположении 'D: \ Program Files (x86) \ SiteExtensions \ Functions \ 1.0.11702 \ bin\ Newtonsoft.Json.dll.Тип B происходит от 'Newtonsoft.Json, Version = 11.0.0.0, Culture = нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed' в контексте 'LoadNeither' в байтовом массиве.
Моя библиотека Newtonsoft v11 находится вДиректория bin функции и там указывается так:
#r "bin\Newtonsoft.Json.dll"
В функции есть действительный код, который корректно работает в функции:
dynamic eventHubMessage =
JsonConvert.DeserializeObject<JObject>(myEventHubMessage);
Но когда он попадает в эту строку:
CRSLTwinData twinData = IotHubProxy.GetTwinData(hubDeviceId);
Выдает исключение.Здесь есть ссылка на MADShared и Newtonsoft 11.
Я перепробовал все, что мог, чтобы заставить функцию использовать версию 11 библиотеки DLL, но что-то явно не в порядке.
ОБНОВЛЕНИЕ: мы попытались перенаправить на 9 вместо этого и получили это:
2018-05-22T13: 24: 48.336 [Info] Исключение: [A] Newtonsoft.Json.Linq.JObject не может быть приведен к [B] Newtonsoft.Json.Linq.JObject.Тип A происходит от 'Newtonsoft.Json, Версия = 9.0.0.0, Культура = Нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed' в контексте 'По умолчанию' в расположении 'D: \ Program Files (x86) \ SiteExtensions \ Functions \ 1.0.11702 \ bin\ Newtonsoft.Json.dll.Тип B происходит от 'Newtonsoft.Json, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed' в контексте 'LoadFrom' в расположении 'D: \ local \ Temporary ASP.NET Files \ root \ e801054b \ 3f30c00f \ assembly\ dl3 \ e5381214 \ 00f64e9a_9af1d301 \ Newtonsoft.Json.dll '.
Затем мы попытались перенаправить на 10 и получили:):
2018-05-22T14:16: 14.509 [Info] Исключение: [A] Newtonsoft.Json.Linq.JObject не может быть приведен к [B] Newtonsoft.Json.Linq.JObject.Тип A происходит от 'Newtonsoft.Json, Версия = 9.0.0.0, Культура = Нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed' в контексте 'По умолчанию' в расположении 'D: \ Program Files (x86) \ SiteExtensions \ Functions \ 1.0.11702 \ bin\ Newtonsoft.Json.dll.Тип B происходит от 'Newtonsoft.Json, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed' в контексте 'LoadFrom' в расположении 'D: \ local \ Temporary ASP.NET Files \ root \ e801054b \ 3f30c00f \ assembly\ dl3 \ e5381214 \ 00f64e9a_9af1d301 \ Newtonsoft.Json.dll '.