При подключении к Dynamics CRM генерируется DeviceAlreadyExists
Я создал консольную программу C#, которая создает отчет через Excel. Эта программа извлекает данные из Dynamics CRM 2013 и сравнивает данные с системой ERP. Программа выполняется через SQL-Agent и использует psexec для выполнения через сеть сервера.
Тем не менее, иногда при попытке инициализировать подключение к среде CRM программа завершается со следующей ошибкой:
Microsoft.Crm.Services.Utility.DeviceRegistrationFailedException: DeviceAlreadyExists: 0x80041132 в Microsoft.Crm.Services.Utility.DeviceIdManager.RegisterDevice(идентификатор приложения Guid, устройство Uri IssueUri, устройство LiveDevice) в приложении Microsoft.Crm.Service.Device, Uri IssueerUri, String deviceName, String devicePassword) в Microsoft.Crm.Services.Utility.DeviceIdManager.LoadOrRegisterDevice()
Я много об этом искал, но не могу найти никаких прямых причин для такого поведения. Это "определение" класса DeviceIdManager:
Класс DeviceIdManager демонстрирует, как управлять регистрацией вычислительных устройств с помощью Windows Live ID . Эта функциональность требуется при аутентификации с помощью Microsoft Dynamics CRM Online.
Класс DeviceIdManger регистрирует компьютерное устройство с идентификатором Windows Live ID посредством генерации идентификатора и пароля и сохраняет эту информацию в зашифрованном формате на локальном диске для последующего повторного использования. Регистрация устройства хранится в папке%USERPROFILE%\LiveDeviceID на вычислительном устройстве.
Основной метод класса для вызова из вашего кода - LoadOrRegisterDevice(). Посмотрите код класса ServerConnection для примера вызова этого метода.
Я контролировал, что "Регистрация устройства" хранится в правильной папке. Могу ли я как-то контролировать это поведение?
Заранее спасибо.