使用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();
答案 0 :(得分:1)
直接TCP模式仅支持服务器资源(如文档)的任何请求。主资源(如文档收集)的请求仍将通过网关。
你能详细说明你在小提琴手中看到的是什么样的请求吗?请注意,客户端初始化相关的请求也将通过网关,并且将使用TCP定向任何后续的服务器资源请求。
您使用的是分区收藏功能吗?
请注意,我们在.NET SDK 1.9.2中引入了ConnectionProtocol(之前标记为已废弃)。如果您将协议设置为TCP并将模式设置为更早,它应该按预期工作。无需更改端点字符串。
此致 拉杰什