DocumentDB:使用客户端 lib > 1.9.0 的 TCP 连接
DocumentDB: using TCP connection with client lib > 1.9.0
在 Microsoft.Azure.DocumentDB 1.9.0 中,ConnectionPolicy 中的 ConnectionProtocol 变量已过时,注释如下:
"This property is deprecated. Please use ConnectionMode to choose communication protocol in conjution with connection endpoint mode."
我们还是设置为Tcp,ConnectionMode设置为Direct。但是,在对我们的应用程序进行 Fiddler 捕获时,我可以看到通过 HTTPS 发送到 DocumentDb 的请求。
如何强制库使用Tcp 连接?我必须更改端点字符串吗?我们目前的形式是:
https://mydocumentdb.documents.azure.com:443
因为这是 Azure 告诉我们使用的。我真的不清楚 "connection endpoint mode".
的评论是什么意思
编辑:应要求,这是我的连接代码:
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();
只有对服务器资源(如文档)的任何请求才支持直接 TCP 模式。对主资源(如文档集合)的请求仍将通过网关。
您能否详细说明您在 fiddler 中看到的请求类型?请注意,与客户端初始化相关的请求也将通过网关,任何后续对服务器资源的请求都将使用 TCP 进行定向。
您是否在使用分区集合功能?
请注意,我们带回了 .NET SDK 1.9.2 中的 ConnectionProtocol(之前被标记为已过时)。如果您更早地将协议设置为 TCP 并将模式设置为直接,它应该可以按预期工作。无需更改端点字符串。
此致,
拉杰什
在 Microsoft.Azure.DocumentDB 1.9.0 中,ConnectionPolicy 中的 ConnectionProtocol 变量已过时,注释如下:
"This property is deprecated. Please use ConnectionMode to choose communication protocol in conjution with connection endpoint mode."
我们还是设置为Tcp,ConnectionMode设置为Direct。但是,在对我们的应用程序进行 Fiddler 捕获时,我可以看到通过 HTTPS 发送到 DocumentDb 的请求。
如何强制库使用Tcp 连接?我必须更改端点字符串吗?我们目前的形式是:
https://mydocumentdb.documents.azure.com:443
因为这是 Azure 告诉我们使用的。我真的不清楚 "connection endpoint mode".
的评论是什么意思编辑:应要求,这是我的连接代码:
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();
只有对服务器资源(如文档)的任何请求才支持直接 TCP 模式。对主资源(如文档集合)的请求仍将通过网关。
您能否详细说明您在 fiddler 中看到的请求类型?请注意,与客户端初始化相关的请求也将通过网关,任何后续对服务器资源的请求都将使用 TCP 进行定向。
您是否在使用分区集合功能?
请注意,我们带回了 .NET SDK 1.9.2 中的 ConnectionProtocol(之前被标记为已过时)。如果您更早地将协议设置为 TCP 并将模式设置为直接,它应该可以按预期工作。无需更改端点字符串。
此致, 拉杰什