DocumentDB:使用与客户端lib的TCP连接> 1.9.0

时间:2016-07-21 15:15:53

标签: azure-cosmosdb

使用Microsoft.Azure.DocumentDB 1.9.0,ConnectionPolicy中的ConnectionProtocol变量已被废弃,并带有注释:

"不推荐使用此属性。请使用ConnectionMode选择与连接端点模式相关的通信协议。"

我们仍将其设置为Tcp,并将ConnectionMode设置为Direct。但是,在对我们的应用程序进行Fiddler捕获时,我可以通过HTTPS看到对DocumentDb的请求。

如何强制lib使用Tcp连接?我是否必须更改端点字符串?我们目前的形式是:

https://mydocumentdb.documents.azure.com:443

这就是Azure告诉我们使用的内容。我真的不清楚评论意味着什么,连接端点模式"。

编辑:根据要求,这是我的连接代码:

DocumentDbConnection ConnectionData = new DocumentDbConnection();

ConnectionPolicy ClientConnectionPolicy     = ConnectionPolicy.Default;
ClientConnectionPolicy.ConnectionMode       = ConnectionMode.Direct;
ClientConnectionPolicy.ConnectionProtocol   = Protocol.Tcp;

ConnectionData.DbClient = new DocumentClient( new Uri( DbEndpoint ), AccountKey, ClientConnectionPolicy );

// do initial connection upfront to avoid first-query latency
await ConnectionData.DbClient.OpenAsync();

DatabaseAccount DbAccount = await ConnectionData.DbClient.GetDatabaseAccountAsync();

1 个答案:

答案 0 :(得分:1)

直接TCP模式仅支持服务器资源(如文档)的任何请求。主资源(如文档收集)的请求仍将通过网关。

你能详细说明你在小提琴手中看到的是什么样的请求吗?请注意,客户端初始化相关的请求也将通过网关,并且将使用TCP定向任何后续的服务器资源请求。

您使用的是分区收藏功能吗?

请注意,我们在.NET SDK 1.9.2中引入了ConnectionProtocol(之前标记为已废弃)。如果您将协议设置为TCP并将模式设置为更早,它应该按预期工作。无需更改端点字符串。

此致 拉杰什