Не удалось загрузить файл или сборку «Newtonsoft.Json» при выполнении асинхронного метода - PullRequest
0 голосов
/ 16 октября 2018

В моем приложении mvc при нажатии кнопки я вызываю один асинхронный метод, который регистрирует устройство в iot-хабе.

Код отлично работает в консольном приложении, но вызывает проблему в приложении mvc.

ошибка:

Инициализатор типа для 'Microsoft.Azure.Devices.HttpClientHelper' вызвал исключение.

Внутреннее исключение:

Не удалось загрузить файл или сборку 'Newtonsoft.Json, версия = 6.0.0.0, культура = нейтральная, PublicKeyToken = 30ad4fe6b2a6aeed' или одна из ее зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040)

Пакеты Newtonsoft.Json уже установлены в код версии проекта 10.0.3

  public async Task<ActionResult> AddDeviceAsync()
    {         
        Device device;
        try
        {
            connectionString = ConfigurationManager.AppSettings["DefaultIoTHubConnection"];          

            registryManager = RegistryManager.CreateFromConnectionString(connectionString);

            List<string> collection = new List<string>();
            for (int i = 0; i < 4; i++)
            {
                collection.Add("dummy_device_" + i);
            }

            foreach (var deviceId in collection)
            {
                try
                {
                    // register device into IoT hub 
                    device = await registryManager.AddDeviceAsync(new Device(deviceId)); // getting exception here

1 Ответ

0 голосов
/ 16 октября 2018

эта проблема возникает, когда CLR выполняет скомпилированный код и не может найти сборку в домене приложения.

Идея заключается в том, что выполняемый код был скомпилирован путем ссылки на версию 6.0.0.0 файла Newtonsoft.Json, но во время выполнения вы выполняете этот код в домене приложения, где указанная сборка недоступна (или ссылочная версия сборки недоступна).

Ваш проект asp.net mvc ссылается на пакет nuget Newtonsoft.Json?На какую версию пакета вы ссылаетесь?

...