Мы пытаемся использовать эмулятор хранилища Azure и эмулятор Azure CosmosDB для нашей локальной разработки, а также для модульного тестирования в рамках сборок CI / CD. Вот основная ссылка с деталями этих эмуляторов:
https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator
В рамках этих усилий нам нужен способ запустить и остановить оба эмулятора. Мы попытались запустить Docker, но у него есть свои проблемы из-за антивирусных вмешательств и т. Д., Поэтому я не хочу говорить об этом варианте в этом посте.
Это наше главное требование - запускать эмуляторы во время перезагрузки / запуска машины. Мы смогли заставить это работать в случае с эмулятором хранилища Azure, просто вызвав соответствующую команду для запуска эмулятора через планировщик задач Windows, это было очень просто. Таким образом, мы попробовали тот же подход с эмулятором CosmosDB, но он просто завершается ошибкой «Catastrophic fail (0x8000FFFF)» без особых подробностей для устранения проблемы. Это на компьютере с Windows Server 2016 Standard, но на моем компьютере с Windows 10 Enterprise я получаю тот же результат.
С тех пор я попробовал несколько других вариантов, как показано ниже:
- Создайте командный файл с помощью приведенной ниже команды и запустите его через планировщик задач:
start / d "C: \ Program Files \ Эмулятор базы данных Azure Cosmos DB" CosmosDB.Emulator.exe
Это работает, когда я запускаю командный файл вручную, но не через планировщик задач.
Тот же подход с использованием PowerShell и те же результаты, что и выше.
Наконец, я создал службу Windows с использованием Topshelf, которая снова работает при запуске с использованием Visual Studio или отладке кода, но не при установке службы и ее запуске в консоли служб.
Мы пробовали использовать разные учетные записи, в том числе с правами администратора. Я упустил добавить ниже детали в моем оригинальном сообщении:
Эмулятор CosmosDB запускается, если он запускается вручную мной или членами моей команды, но когда он вызывается планировщиком задач, в системный журнал записывается следующая ошибка
Настройки разрешений для конкретного приложения не предоставляют разрешения локальной активации для приложения COM-сервера с CLSID
{D63B10C5-BB46-4990-A94F-XXXXXXXXXXXX}
и APPID
{9CA88EE3-ACB7-47C8-AFC4-XXXXXXXXXXXX}
SID пользователя {Damain} {UserName} (S-1-5-21-174494438-4207865126-xxxxxxxxx-xxxxx) с адреса LocalHost (с помощью LRPC), работающего в контейнере приложения. Недоступный SID (недоступен). Это разрешение безопасности можно изменить с помощью инструмента администрирования служб компонентов.
Есть ли другой способ заставить это работать?