it-swarm.com.ru

Cosmos DB Emulator: не удалось получить заголовки авторизации для предложений

Я обновил Azure Cosmos DB Emulator с версии 1.22 до 2.0. Теперь, когда я захожу в локальный Data Explorer , ничего не загружается на вкладке Explorer, и я вижу ошибку

Не удалось получить заголовки авторизации для предложений: {"readyState": 4, "responseText": "{\" code\": \" InternalServerError\", \" message\": \" Произошла неизвестная ошибка сервера при обработке этого запроса.\r\nActivityId: 48afdb03-e04b-4a5e-b568-e268c32eb10f, Microsoft.Azure.Documents.Common/2.0.0.0\"}", "responseJSON": {"code": "InternalServerError", "message": "Неизвестно при обработке этого запроса произошла ошибка сервера.\r\nActivityId: 48afdb03-e04b-4a5e-b568-e268c32eb10f, Microsoft.Azure.Documents.Common/2.0.0.0 "}," status ": 500," statusText ":" error " }

Я попытался переустановить его, перезагрузить компьютер и запустить его с правами администратора.

Что я могу сделать, чтобы это исправить?

7
Scott H

Похоже, 2.0.0 Эмулятор CosmosDB требует сброса данных, которые в нем находятся. Это единственное, что исправило это для меня.

Вы можете сделать это с помощью значка эмулятора CosmosDB

 enter image description here

После сброса все заработает. Также имейте в виду, что SDK до 2.0 не будут работать на новом эмуляторе.

5
Nick Chapsas

В моем случае мне пришлось удалить/переустановить эмулятор (вы можете скачать его с https://aka.ms/cosmosdb-emulator ), затем после перезагрузки я сделал «Сброс данных ...» в контекстное меню эмулятора (как описано Ником), и после этого оно снова заработало. 

Сброс данных сам по себе не помог мне.

Я нашел следующий способ заставить его работать снова (Эмулятор версии 2.1.4.0 в Windows 10 Enterprise - Build 1803):

  1. Запустите эмулятор, чтобы вы получили значок в системном окне. Подождите, пока не появится сообщение «Эмулятор запущен». После запуска проверьте, работает ли Emulator Explorer. Если он зависает (анимация из трех точек навсегда), перейдите к шагу 2.
  2. Сброс данных: С помощью Systray щелкните правой кнопкой мыши, в контекстном меню выберите «Сбросить данные ...». Дождитесь появления эмулятора («Эмулятор запущен»). Продолжите с шага 3.
  3. Завершение работы эмулятора: с помощью Systray, правой кнопкой мыши, контекстное меню, выберите «Выход»
  4. Перезагрузите компьютер
  5. После перезагрузки запустите эмулятор (перейдите к 1.). Теперь должен работать Emulator Explorer (вы можете создать коллекцию через «New collection», чтобы протестировать ее).

Заметки: 

  • «Сбросить данные ...» удаляет локальную папку эмулятора Cosmos DB, затем останавливает и перезапускает службу эмулятора.

  • кажется важным запустить его до того, как вы запустите какое-либо VPN-соединение (например, VPN фирмы). Эмулятор зависит от API-интерфейсов RegisteredIO в дополнение к обычным Winsockets, поэтому при использовании стороннего программного обеспечения могут возникнуть нежелательные побочные эффекты.

  • если вы запускаете эмулятор на ноутбуке, рекомендуется остановить его, прежде чем ваш компьютер перейдет в режим сна/спящий режим. Это делается для того, чтобы данные эмулятора оставались непротиворечивыми и не позволяли вам часто их сбрасывать.

  • Начиная с версии 2.2.1, появилась новая опция командной строки /disablerio, которая переключит эмулятор для работы с обычными API Winsockets. Если у вас возникнут какие-либо проблемы с VPN или сторонним программным обеспечением, вы можете попробовать этот переключатель. В командной строке (admin Shell) введите: 
    cd /d "%ProgramFiles%\Azure Cosmos DB Emulator" 
    CosmosDB.Emulator.exe /disablerio


Некоторые подробности об эмуляторе

Это каталог, который использует эмулятор:

C:\Users\[идентификатор пользователя]\AppData\Local\CosmosDBEmulator 

Само приложение можно найти здесь:

C:\Program Files\Эмулятор БД Azure Cosmos\Microsoft.Azure.Cosmos.Emulator.exe

Хотя в самом эмуляторе не так много параметров конфигурации, в каталоге, указанном выше, есть 3 файла конфигурации: ComputeMachine.Config, Machine.Config и GatewayMachine.Config.

Команда CosmosDB может помочь, если вы включите журнал трассировки. Сделайте следующее:

Чтобы собрать отладочные трассировки, выполните следующие команды из командной строки администратора:

  1. cd /d "%ProgramFiles%\Azure Cosmos DB Emulator"
  2. CosmosDB.Emulator.exe /shutdown. Посмотрите в системном трее, чтобы убедиться, что программа закрылась, это может занять минуту. Вы также можете просто нажать Выход в пользовательском интерфейсе Azure Cosmos DB Emulator.
  3. CosmosDB.Emulator.exe /starttraces
  4. CosmosDB.Emulator.exe
  5. Воспроизведите проблему. Если Data Explorer не работает, вам нужно подождать, пока браузер откроется в течение нескольких секунд, чтобы уловить ошибку.
  6. CosmosDB.Emulator.exe /stoptraces
  7. Перейдите к %ProgramFiles%\Azure Cosmos DB Emulator и найдите файл docdbemulator_000001.etl.
  8. Отправьте файл .etl вместе с действиями по воспроизведению в [email protected] для отладки.

Update: Я получил ответ от команды разработчиков CosmosDB, которую я включил в этот ответ. Пожалуйста, дайте мне также знать через комментарии ниже этого ответа, если вы что-то узнали. Позвольте мне отметить, что обычно этот инструмент, который я очень часто использую для разработки решений CosmosDB, работает нормально.

0
Matt