Cosmos DB模拟器:无法获取商品的授权标头

时间:2018-10-08 19:20:11

标签: .net azure .net-core azure-cosmosdb

我将Azure Cosmos DB Emulator从1.22版升级到了2.0版。现在,当我转到local Data 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”},“状态”:500,“状态文本”: “错误”}

我尝试重新安装它,重新启动PC并以管理员身份运行它。

该如何解决?

2 个答案:

答案 0 :(得分:7)

看起来2.0.0 CosmosDB Emulator需要您重置其中的数据。那是唯一为我修复的东西。

您可以通过CosmosDB仿真器图标完成此操作

enter image description here

重置后,它将起作用。另外请记住,新的仿真器将无法使用2.0版之前的SDK。

答案 1 :(得分:0)

就我而言,我必须卸载/重新安装仿真器(可以从https://aka.ms/cosmosdb-emulator下载),然后在重新启动后,我在仿真器的上下文菜单中执行了“重置数据...”(如所述)由尼克(Nick)制作,此后又重新工作了。

仅重置数据并不能解决我的问题。

我找到了以下使它再次运行的方法(Windows 10 Enterprise上的仿真器版本2.1.4.0-Build 1803):

  1. 启动模拟器,以便获得系统托盘图标。等待直到收到“仿真器已启动”消息。启动后检查模拟器资源管理器是否正常运行。如果挂起(永远显示三个点的动画),请继续执行步骤2。
  2. 重置数据:通过Systray,右键单击上下文菜单,选择“重置数据...”。等待仿真器启动(“仿真器已启动”)。继续执行步骤3。
  3. 关闭模拟器:通过Systray,右键单击,右键菜单,选择“退出”
  4. 重新启动PC
  5. 重新启动后,启动仿真器(转到1。)。现在,模拟器浏览器应该可以工作了(您可以通过“新集合”创建一个集合以对其进行测试)。

注释:

  • “重置数据...”删除本地Cosmos DB仿真器文件夹,然后停止并重新启动仿真器服务。

  • 在启动任何VPN连接(例如,公司的VPN)之前启动它似乎很重要-仿真器除了常规的Winsockets之外,还依赖于RegisteredIO API,因此第三者软件可能会有不良影响

  • 如果在笔记本电脑上运行模拟器,建议您在计算机进入睡眠/休眠模式之前将其停止。这是为了确保模拟器的数据保持一致,并防止您经常对其进行重置。

  • 从2.2.1版开始,有一个新的命令行选项/disablerio,它将切换模拟器以使其与常规Winsockets API一起使用。如果您在使用VPN或第三方软件时遇到任何问题,可以尝试进行此切换。在命令提示符(管理员外壳)中,键入:
    cd /d "%ProgramFiles%\Azure Cosmos DB Emulator"
    CosmosDB.Emulator.exe /disablerio

  • 如果遇到连接问题,请检查CosmosDB emulator's SSL certificates


有关模拟器的一些详细信息

这是模拟器使用的目录:

  

C:\ Users \ [用户ID] \ AppData \ Local \ CosmosDBEmulator

应用程序本身可以在这里找到:

  

C:\ Program Files \ Azure Cosmos DB Emulator \ Microsoft.Azure.Cosmos.Emulator.exe

虽然仿真器本身没有很多配置选项,但上面提到的目录中有3个配置文件:ComputeMachine.ConfigMachine.ConfigGatewayMachine.Config

如果您启用跟踪日志,则CosmosDB团队可以提供帮助。请执行以下操作:

要收集调试跟踪,请从管理命令提示符处运行以下命令:

  1. cd /d "%ProgramFiles%\Azure Cosmos DB Emulator"
  2. CosmosDB.Emulator.exe /shutdown。观察系统托盘以确保程序已关闭,这可能需要一分钟。您还可以仅在Azure Cosmos DB仿真器用户界面中单击“退出”。
  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文件和复制步骤发送到askcosmosdb@microsoft.com进行调试。

更新:我得到了CosmosDB开发团队的答复,我已将其包含在此答案中。如果您发现了问题,也请通过此答案下方的评论让我知道。让我注意到,通常我经常使用该工具来开发CosmosDB解决方案的工具可以正常工作。

相关问题