0

我有一个带有 3 或 4 个集合的开发和 qa Azure Cosmos Db 数据库。我希望能够对这些数据进行快照并将其复制到本地,以便我可以将其用于通过 Cosmos Db 模拟器进行本地开发。我看过数据迁移工具,虽然它确实提到了从模拟器复制,但没有提到你是否可以复制到模拟器。有谁知道它或其他工具是否可以从 Azure Cosmos Db 复制到本地模拟器,如果可以,是否有任何特殊步骤可以这样做?或者有没有更简单的方法来导出 cosmos 集合,以便我可以在本地导入它们?我刚刚尝试并收到错误“正在使用传输协议或密码中的禁止加密进行请求。我尝试了所有 3 种连接模式。

谢谢!

在此处输入图像描述

4

2 回答 2

1

此连接问题可能是由操作系统的全局更改或默认启用 TLS 1.3 的浏览器设置引起的。Cosmos 模拟器仅接受并使用 TLS 1.2 协议。

确保数据迁移工具在连接到 Azure Cosmos 帐户时使用传输层安全性 (TLS) 1.2,使用 .NET Framework 版本 4.7。

更改设置并默认为 TLS 1.2;例如,在 IIS 管理器中导航到“站点”->“默认网站”并找到端口 8081 的“站点绑定”并编辑它们以禁用 TLS 1.3。可以通过“设置”选项对 Web 浏览器执行类似的操作。

查看此文档以解决连接问题

Azure Cosmos DB 的数据库迁移工具

Azure Cosmos DB 模拟器仅支持通过 TLS 进行的安全通信。Azure Cosmos DB 模拟器支持单个固定帐户和用于主密钥身份验证的众所周知的身份验证密钥。此帐户和密钥是唯一允许用于 Azure Cosmos DB 模拟器的凭据。

在 Source (Azure Cosmos DB) 和 Target (Cosmos DB enumator) 的数据迁移工具中构造如下连接字符串。

AccountEndpoint=<CosmosDB Endpoint>;AccountKey=<CosmosDB Key>;Database=<CosmosDB Database>;.

在此处输入图像描述

于 2021-09-09T06:30:55.203 回答
1

您可以尝试一下Github 问题中建议的解决方法吗?

  • 从 cmd 获取当前所需的设置:netsh http show sslcert >> C:\temp\netsh.output.txt
  • 在输出文件中搜索 0.0.0.0:8081 或您正在使用的任何端口
  • 从 cmd 设置标志: netsh http update sslcert ipport=0.0.0.0:8081 appid={00000000-0000-0000-0000-9134d4f81626} certash=b35df09d20000000000019ad39c6170000000000 certstorename=en disabletls13

appid和的值certhash应该来自步骤 1 中捕获的输出文件。重要的部分是 disabletls13=enable。您需要所有这些位才能使命令正常工作。

于 2021-09-09T06:25:50.277 回答