微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行CosmosDB仿真器以通过Android仿真器或Android设备进行连接

如何解决运行CosmosDB仿真器以通过Android仿真器或Android设备进行连接

在使用控制台应用程序进行本地测试时,我的CosmosDB模拟器运行良好。

我想从我的Xamarin Android应用程序连接,无论是在模拟器上还是在同一LAN上的设备上。 如果使用模拟器通过CosmosDB客户端连接到https://10.0.2.2:8081,则在调试控制台中会看到很多重复的信息:

[0:] DocDBTrace警告:0:

[0:]无法访问端点。刷新缓存并重试

如果使用仿真器和浏览器,我将连接到https://10.0.2.2:8081/_explorer/index.html,然后可以访问DataExplorer。

enter image description here

我了解到必须启用/ AllowNetworkAccess,因此我关闭了仿真器,删除了CosmosDBEmulator数据文件夹,然后:

。\ Microsoft.Azure.Cosmos.Emulator.exe /GenKeyFile=cosmo.key

然后与

一起启动

。\ Microsoft.Azure.Cosmos.Emulator.exe / AllowNetworkAccess /KeyFile=cosmo.key

DataExplorer打开,我尝试创建一个数据库,但收到此错误

enter image description here

基本上,使用/ AllowNetworkAccess,即使使用自己的基于Web的DataExplorer(在本地使用),我也会收到错误消息。

我使用cosmos.key新密钥从Android模拟器尝试了我的应用,但出现此错误

Microsoft.Azure.Cosmos.CosmosException:'响应状态代码不指示成功:未经授权(401);子状态:0;活动编号:626ab064-6c6e-445a-883a-8491de96636f;原因:(响应状态代码未指示成功:未授权(401);子状态:0; ActivityId:626ab064-6c6e-445a-883a-8491de96636f;原因:(响应状态代码未指示成功:未授权(401);子状态: 0; ActivityId:626ab064-6c6e-445a-883a-8491de96636f;原因:(消息:{“ Errors”:[“ HTTP请求中找到的MAC签名与计算出的签名不同。服务器使用以下字符串进行签名- 'post \ ndocs \ ndbs / localPlayGround / colls / containerPlayGround \ nthu,2020年11月5日15:28:15 gmt \ n \ n'。了解更多:https://aka.ms/cosmosdb-tsg-mac-signature“] } ActivityId:626ab064-6c6e-445a-883a-8491de96636f,请求URI:/ apps / DocDbApp / services / DocDbServer1 / partitions / a4cb494d-38c8-11e6-8106-8cdcd42c33be / replicas / 1p /,RequestStats: RequestStartTime:2020-11-05T15:28:15.8263417Z,RequestEndTime:2020-11-05T15:28:15.8403436Z,尝试区域数:1 响应时间:2020-11-05T15:28:15.8403436Z,StoreResult:StorePhysicalAddress:rntbd://192.168.0.6:10253 / apps / DocDbApp / services / DocDbServer1 / partitions / a4cb494d-38c8-11e6-8106-8cdcd42c33be / replicas / 1p /,LSN:2,GlobalCommittedLsn:-1,PartitionKeyRangeId:,IsValid:True,StatusCode:401,SubStatusCode:0,RequestCharge:0,ItemLSN:-1,SessionToken:-1#2,UsingLocalLSN:True,TransportException:null,资源类型:文档,操作类型:查询 ,SDK:Microsoft.Azure.Documents.Common / 2.11.0,请参阅CosmosDiagnostics,Linux /未知的cosmos-netstandard-sdk / 3.14.0);););'

关于我在做什么错的任何建议? CosmosDB仿真器为2.11.6

谢谢

解决方法

如果我生成密钥,则用默认密钥覆盖它,然后 然后使用默认值作为生成的密钥,它可以跨网络使用。

您需要用默认密钥替换生成的密钥,以便数据浏览器继续工作。

引用:azure-cosmos-db-emulator-unauthorized

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。