适用于 SQL API 的 Azure Cosmos DB .NET SDK v3:下载和发行说明

适用于: SQL API

链接
SDK 下载 NuGet
API 文档 参考文档
示例 .NET代码示例
入门 Azure Cosmos DB .NET SDK 入门
Web 应用教程 使用 Azure Cosmos DB 开发 Web 应用程序
Entity Framework Core 教程 Entity Framework Core 与 Azure Cosmos DB 提供程序
当前受支持的框架 Microsoft .NET Standard 2.0

建议的最低版本为 3.20.1

使用 .NET V3 SDK 时,请确保应用程序至少使用此处所述的最低版本来完成所有关键修复。

在该版本上检测到的任何已知问题都列在已知问题部分中。

发行说明

预览功能被视为单独的分支,在准备就绪之前不会包含在正式版本中。 每个预览版本都列出了所有已启用的附加功能。

该格式基于保留 Changelog,而此项目遵循语义化版本控制

3.20.1 -2021-06-29

3.20.1 -2021-06-29

固定

  • #2450 查询:修复了用于识别字符串字面量的 c# 分析器语法,字符串字面量可避免返回到网关获取查询计划。
  • #2574 UserAgent:修复了用户代理字符串创建中的争用条件,并将客户端 ID 限制为 10。 已在 3.20.0 PR 2552 中引入
  • #2580 LINQ:在未应用筛选器的情况下,在调用 ToQueryDefinition() 的同时修复了 ArgumentNullException。

3.20.0 -2021-06-21

已添加

  • #2509 更改源:在容器上添加更改源迭代器 API
  • #2558 诊断:将持续时间字段添加到诊断中的 HttpResponseStatistics
  • #2502 诊断:添加直接 TransportRequestStats 以便跟踪传输请求时间线
  • #2491 更改源处理器:添加对图形 API 帐户的支持。 图形 API 帐户现在可以使用 /partitionKey(而不是 /id)来创建租赁容器。

固定

  • #2567 ReadMany:修复了失败情况下 AddRequestHeaders 请求选项以及缺失标头和消息的问题
  • #2510 查询:修复了合并分区时的 InvalidOperationException。 已在 3.17.0 PR #2084 中引入。
  • #2510 查询:修复了分区合并时管道执行的处理。 已在 3.17.0 PR #2084 中引入。
  • #2547 查询:修复了当字段是对象或数组时不正确的查询顺序
  • #2511 可用性:修复了获取帐户信息重试逻辑,从而避免在 403(禁止)上转到次要区域
  • #2512 缓存:修复了在生成器引发异常时删除值的缓存。 谢谢 @johngallardo。
  • #2516 诊断:修复了导致 InvalidOperationException 的争用条件。 已在 3.17.0 PR #2097 中引入
  • #2530 网关:修复了会话一致性中网关模式的容器重建场景。 已在 3.18.0 PR #2165 中引入
  • #2552 UserAgent:修复 UserAgent,获得正确的客户端数
  • #2562 诊断:修复了服务不可用场景下的 NullReferenceException。 已在 3.18.0 PR #2312 中引入
  • #2502 跟踪:删除直接模式下的干扰跟踪

3.20.0 -2021-06-21

已添加

  • #2509 更改源:在容器上添加更改源迭代器 API
  • #2558 诊断:将持续时间字段添加到诊断中的 HttpResponseStatistics
  • #2502 诊断:添加直接 TransportRequestStats 以便跟踪传输请求时间线
  • #2491 更改源处理器:添加对图形 API 帐户的支持。 图形 API 帐户现在可以使用 /partitionKey(而不是 /id)来创建租赁容器。
  • #2488 更改源处理器:重构检查点 API 以引发异常。 已在 #2331 中引入。 将这视为预览 API 发展到 GA 的一项中断性变更。

固定

  • #2567 ReadMany:修复了失败情况下 AddRequestHeaders 请求选项以及缺失标头和消息的问题
  • #2510 查询:修复了合并分区时的 InvalidOperationException。 已在 3.17.0 PR #2084 中引入。
  • #2510 查询:修复了分区合并时管道执行的处理。 已在 3.17.0 PR #2084 中引入。
  • #2547 查询:修复了当字段是对象或数组时不正确的查询顺序
  • #2511 可用性:修复了获取帐户信息重试逻辑,从而避免在 403(禁止)上转到次要区域
  • #2512 缓存:修复了在生成器引发异常时删除值的缓存。 谢谢 @johngallardo。
  • #2516 诊断:修复了导致 InvalidOperationException 的争用条件。 已在 3.17.0 PR #2097 中引入
  • #2530 网关:修复了会话一致性中网关模式的容器重建场景。 已在 3.18.0 PR #2165 中引入
  • #2552 UserAgent:修复 UserAgent,获得正确的客户端数
  • #2562 诊断:修复了服务不可用场景下的 NullReferenceException。 已在 3.18.0 PR #2312 中引入
  • #2502 跟踪:删除直接模式下的干扰跟踪

3.19.0 -2021-05-25

已添加

  • #2482 Azure Active Directory:添加 CosmosClient TokenCredential API
  • #2440 性能:批量添加优化来减少分配并改进异步任务处理
  • #2447 可用性:在网关中断时添加帐户刷新逻辑,而不是等待后台 5 分钟后刷新
  • #2493 NullReferenceException:添加逻辑来将 CosmosDiagnostics 附加到 NullReferenceExceptions
  • #2465 ObjectDisposedException:添加逻辑来将 CosmosDiagnostics 附加到 ObjectDisposedException
  • #2390 批量:当请求过大时添加修补程序操作的重试
  • #2487 UserAgent:将标志添加到用户代理来显示是否已配置区域故障转移

固定

  • #2451 查询:修复了无法识别多个 IN 语句的查询的原生 c# 分析器。 已在 3.13.0 PR #1743 中引入
  • #2451 批量:通过删除冗余信息并添加正确的重试上下文来修复诊断跟踪。 已在 3.17.0 PR #2097 中引入
  • #2460 权限:修复了有关资源令牌范围限制的文档。 (感谢 arorainms)
  • #2490 更改源:修复了已遵循的 CancellationToken。 已在 3.15.0 PR #1933 中引入
  • #2483 可用性:修复了获取帐户信息,以在 处理 CosmosClient 后停止后台刷新。 已在 3.18.0 PR #2355 中引入
  • #2481 Azure Active Directory:修复了令牌刷新间隔、异常处理和重试逻辑
  • #2474 更改源:修复了引起“更改源应始终有下一页”的异常。 已在 3.15.0 PR #1933 中引入
  • #2498 诊断:修复了一致性配置序列化中的默认设置。 已在 3.18.0 PR #2250 中引入

3.19.0-预览版 1 -2021-05-17

已添加

  • #2398 修补程序:为 PatchOperation 添加了 TrySerializeValueParameter 方法
  • #2440 性能:批量添加优化来减少分配并改进异步任务处理
  • #2447 可用性:在网关中断时添加帐户刷新逻辑,而不是等待后台 5 分钟后刷新
  • #2449 客户端加密:添加了分区键路径未加密的 PolicyFormatVersion 和验证

固定

  • #2451 查询:修复了无法识别多个 IN 语句的查询的原生 c# 分析器。 已在 3.13.0 PR #1743 中引入
  • #2451 批量:通过删除冗余信息并添加正确的重试上下文来修复诊断跟踪。 已在 3.17.0 PR #2097 中引入
  • #2460 权限:修复了有关资源令牌范围限制的文档。 (感谢 arorainms)

3.19.0 -2021-04-27

已添加

  • #2308#2425专用网关:将 MaxIntegratedCacheStaleness 添加到 Item 和 Query 请求选项
  • #2371 请求选项:添加请求选项的委托,用于访问和添加标头
  • #2398 修补程序:添加 TrySerializeValueParameter,并使 其成为内部 API,因为它未在任何公共 API 中使用
  • #2331 ChangeFeedProcessor:添加对手动检查点、上下文和流的支持

3.18.1 -2021-06-14

固定

  • #2510 查询:修复了合并到单个分区的 InvalidOperationException
  • #2531 查询:修补分区合并上的无效查询结果

3.18.0 -2021-04-26

已添加

  • #2324 诊断:将所有 http 请求添加到诊断
  • #2400 性能:添加优化以减少对直接 + TCP 操作的分配
  • #2353 查询:为 LIKE 语句和 INT 系统函数添加对 c# 查询解析器的支持,以免在服务互操作不可用时进行网关查询计划调用
  • #2397 诊断:添加优化和 BELatency,后者是 Cosmos DB 后端请求延迟时间(以毫秒为单位)
  • #2355 可用性:如果初始获取帐户信息用时超过 5 秒(这时如果主要区域关闭,便会减少 SDK 启动时间),则向次要区域添加并发请求。
  • #2352 ReadManyApi:添加了新的 API,旨在使用项 ID 和分区键值有效读取项列表
  • #2250 诊断:添加根本原因问题所需的客户端配置信息
  • #2241 ContainerBuilder:添加公共构造函数来创建 ContainerBuilder 实例
  • #2222 查询:将 WithParameterStream 添加到 QueryDefinition 以传入序列化值
  • #2165#2408性能:添加优化以减少具有会话一致性的网关模式的标头大小。 它现在只发送特定分区会话令牌,例如直接模式。

固定

  • #2282 查询:修复 COUNT(DISTINCT),以始终计算正确的值。 任何查询结果如果超过 1 页,都可能产生不正确的值。
  • #2405 更改源:修复拉取模型以避免额外的 NotModified 调用
  • #2368 查询:修复了“无法分析…作为 ResourceId”的 BadRequest,用于拆分时的网关模式。 已在 3.14.0 PR #1812 中引入
  • #2357 查询:修复了有序跨分区查询的 FeedResponse 中不正确的 RequestCharge 和缺少的标头。 已在 3.14.0 PR #1812 中引入(感谢 ccurrens)
  • #2409 查询:修复了诊断中的争用条件,它导致了信息丢失和索引越界异常。 已在 3.17.0 PR #2097 中引入
  • #2400 可用性:修复了直接 + tcp 模式下的争用条件,它导致 SDK 发生内部服务器错误和无效操作异常
  • #2400 可用性:修复了直接 + tcp 模式下的争用条件,它导致了并发请求创建不必要连接
  • #2392 更改源估算器:修复异常传播,引发 容器/租赁的 StartAsync 上未发现的情况。 已在 3.17.0 PR #1830 中引入
  • #2383 可用性:在故障转移期间修复 CancellationToken 评估,这可防止必要的 SDK 刷新
  • #2376 诊断:在 ITrace 中修复无效的嵌套和处理程序名称。 已在 3.17.0 PR #2097 中引入
  • #2286 诊断:修复 ITrace 中的回归,其中直接操作诊断未包含在异常情况中。 已在 3.17.0 PR #2097 中引入
  • #2424 查询:修复了转换为 InternalServerError 的 TaskCanceledException,但不包括对大多数异常的诊断。 已在 3.14.0 PR #1812 中引入

3.18.0 -2021-03-18

已添加

  • #2308 补丁:添加了对补丁 API 的预览版支持
  • #2312 诊断:添加了 Api 以用于获取请求所联系的所有区域

固定

  • #2314 诊断:修复了由于在 TraceWriter 中同时修改字典而导致的 InvalidOperationException。 已在 3.17.0 PR #2242 中引入
  • #2303 CosmosException:修复了用于删除 JSON 格式的异常消息
  • #2311 空间:修复了在 Json 不表示空间类型时的反序列化
  • #2284 诊断:为缓存操作添加了跟踪。 已在 3.17.0 PR #2097 中引入
  • #2278 文档:在注释示例中修复了键入错误(感谢 paulomorgado)
  • #2279 可用性:在网关挂起时,修复了控制面板热路径上的区域故障转移逻辑。 已在 3.16.0 PR #1954 中引入
  • #2286 诊断:修复了导致 ActivityId 不被包含的回归。 已在 3.17.0 PR #2097 中引入

3.17.1 - 2021-03-19

固定

  • #2314 诊断:修复了由于在 TraceWriter 中同时修改字典而导致的 InvalidOperationException。 已在 3.17.0 PR #2242 中引入
  • #2303 CosmosException:修复了用于删除 JSON 格式的异常消息
  • #2311 空间:修复了在 Json 不表示空间类型时的反序列化
  • #2284 诊断:为缓存操作添加了跟踪。 已在 3.17.0 PR #2097 中引入
  • #2278 文档:在注释示例中修复了键入错误(感谢 paulomorgado)
  • #2279 可用性:在网关挂起时,修复了控制面板热路径上的区域故障转移逻辑。 已在 3.16.0 PR #1954 中引入
  • #2286 诊断:修复了导致 ActivityId 不被包含的回归。 已在 3.17.0 PR #2097 中引入

3.17.0 - 2021-03-02

已添加

  • #1870 批处理 API:添加了会话令牌支持
  • #2145 EnableContentResponseOnWrite:通过 CosmosClientOptions 和 CosmosClientBuilder 添加了客户端级别支持
  • #2166 QueryRequestOption:添加了优化以避免重复 QueryRequestOption
  • #1830#2170更改源估算器:添加了对每个租约的详细估算的支持
  • #2097#2204#2213#2235#2236#2242#2246CosmosDiagnostics:重构为使用 ITrace 作为默认实现
  • #2206 LINQ:添加了用户定义的函数翻译支持(感谢 dpiessens)
  • #2210 QueryDefinition:添加了 API 以获取查询参数(感谢 thomaslevesque)
  • #2197 CosmosClient:添加了 CreateAndInitializeAsync 方法,该方法可用于避免第一次操作时预热缓存延迟。
  • #2220 LINQ:将 camelCase 支持作为可选参数添加到 GetItemLinqQueryable()
  • #2249 性能:添加了 HTTP 优化以禁用 .NET Framework 应用程序的 Nagle 算法

固定

  • #2168 查询:修复了 Take 运算符中的回归,在该运算符中耗尽整个查询,而不是停止 Take 计数。 已在 3.14.0 PR #1812 中引入且已在问题 #1979 中报告
  • #2129 CosmosDiagnostics:修复了由保留所有诊断的分页库导致的内存泄漏。 已在 3.14.0 PR #1812 中引入且已在问题 #2087 中报告
  • #2103 查询:修复了 ORDER BY 未定义(和混合类型基元)的延续令牌支持。 已在 3.14.0 PR #1812 中引入
  • #2124 批量:修复了重试逻辑以处理由基础批处理请求过大导致的 RequestEntityTooLarge 异常。 已在 #741 中引入
  • #2198 CosmosClientOptions:修复了导致 ConsistentPrefix 转换为 BoundedStaleness 的 bug。 已在 3.1.0 PR #541 中引入且已在问题 #2196 中报告
  • #2262 CosmosException:修复了与 CosmosException 属性值不匹配的标头以及客户端初始化失败时的错误 SubStatusCode 值
  • #2269 PermissionProperties:修复了 PermissionProperties,使其不依赖于内部类型来修复模拟
  • #2097 诊断:修复了查询、更改源和读取源中的回归,这些回归会导致第一页后的诊断为空。 已在 3.14.0 PR #1812 中引入

3.17.0-preview1 - 2021-03-02

已添加

  • #2197 CosmosClient:添加了 CreateAndInitializeAsync 方法

固定

  • #2235 CosmosDiagnostics:修复了 ITrace JsonTraceWriter 以包含地址解析和存储响应统计信息。已通过 PR #2097 在 3.17.0-preview 中引入
  • #2236 CosmosDiagnostics:修复了查询操作缺少的 POCO 反序列化。
  • #2218(预览)ChangeFeed 拉取模型:修复了路径失败时缺少的标头。 已通过 PR #1933 在 3.15.0 中引入

3.17.0-preview - 2021-02-15

已添加

  • #1870 批处理 API:添加了会话令牌支持
  • #1952#1648 (预览) 分区:添加了对子分区的支持
  • #2122(预览)更改源:添加了全保真支持
  • #2145 EnableContentResponseOnWrite:通过 CosmosClientOptions 和 CosmosClientBuilder 添加了客户端级别支持
  • #2166 QueryRequestOption:添加了优化以避免重复 QueryRequestOption
  • #2097#2204#2213CosmosDiagnostics:重构为使用 ITrace 作为默认实现
  • #2206 LINQ:添加了用户定义的函数翻译支持(感谢 dpiessens)
  • #2210 QueryDefinition:添加了 API 以获取查询参数(感谢 thomaslevesque)

固定

  • #2168 查询:修复了 Take 运算符中的回归,在该运算符中耗尽整个查询,而不是停止 Take 计数。 已在 3.14.0 PR #1812 中引入且已在问题 #1979 中报告
  • #2129 CosmosDiagnostics:修复了由保留所有诊断的分页库导致的内存泄漏。 已在 3.14.0 PR #1812 中引入且已在问题 #2087 中报告
  • #2103 查询:修复了 ORDER BY 未定义(和混合类型基元)的延续令牌支持。 已在 3.14.0 PR #1812 中引入
  • #2124 批量:修复了重试逻辑以处理由基础批处理请求过大导致的 RequestEntityTooLarge 异常。 已在 #741 中引入
  • #2198 CosmosClientOptions:修复了导致 ConsistentPrefix 转换为 BoundedStaleness 的 bug。 已在 3.1.0 PR #541 中引入且已在问题 #2196 中报告

3.16.0 - 2021-01-12

已添加

  • #2098 性能:添加网关标头优化
  • #1954#2094控制平面热路径:添加了更主动的超时和重试逻辑,用于从网关获取缓存和查询计划
  • #2013 更改源处理器:添加了对 EPK 租约的支持
  • #2016 性能:修复了锁争用并减少了 TCP 请求的分配
  • #2000 性能:添加了授权帮助程序改进

固定

  • #2110 CosmosException:修复了 substatuscode 以获取正确的值,而不是 0(在枚举中时)
  • #2092 查询:修复了对延迟 + 缓冲路径的取消令牌支持
  • #2099#2116CosmosDiagnostics:通过添加并发操作支持修复 IndexOutOfRangeException
  • #2096 AggregateException:修复了一些缓存调用以引发原始异常,而不是 AggregateException
  • #2044 查询:修复了 SqlParameter 类上的 Equals 方法
  • #2077 可用性:修复了 HttpException 上的重试行为,SDK 将在同一区域(而不是次要区域)中重试
  • #2056 性能:修复了查询操作的编码字符串性能
  • #2060 查询:修复了由 LINQ order by 操作中使用的 FeedRange 比较导致的 CPU 使用率过高。 已在 3.14.0 PR #1812 中引入
  • #2041 请求费用:修复了产品/服务和 CreateIfNotExists API 的请求费用

3.15.1 - 2020-12-16

固定

  • #2069 批量:修复了拆分时的错误路由
  • #2047 诊断:向摘要添加了操作名称
  • #2042 更改源处理器:修复了未正确应用的 StartTime。 已通过 PR #1725 在 3.13.0-preview 中引入
  • #2071 诊断:修复了记录内部 DocumentClientException 时的 substatuscode

3.15.0 - 2020-11-17

已添加

  • #1926 查询:为 c# 查询分析器添加了当服务互操作不可用时对 IN 子句中多个参数的支持。
  • #1933 ChangeFeed:添加了分页库的采用
  • #1943 性能:通过 LazyCosmosElement 缓存改进添加了查询优化
  • #1944 性能:添加直接版本以获取响应标头改进
  • #1947 ReadFeed:添加了分页库采用
  • #1949 性能:添加了优化的请求标头
  • #1974 性能:通过减少 TimerWheel 中的锁争用来添加批量优化
  • #1977 性能诊断:添加了静态计时器和缓存处理程序名称

固定

  • #1930 更改源:修复了估算器诊断
  • #1939 LINQ:通过 StringComparison 区分大小写修复了 ArgumentNullException(感谢 ylabade)
  • #1940 LINQ:修复了 CosmosLinqQuery.AggregateResultAsync 中的 CancellationToken bug(感谢 ylabade)
  • #1960 CosmosClientOptions 和 ClientBuilder:修复了在 HttpClientFactory 或 WebProxy 上设置 null 值时出现的 ArgumentException
  • #1961 RequestOption.Properties:修复了 CreateContainerIfNotExistsAsync 的 RequestOption.Properties
  • #1967 查询:修复了分页库中的 CancellationToken 逻辑
  • #1988 查询:修复了具有逻辑分区键的查询的拆分校对逻辑
  • #1999 性能:修复了未启用跟踪时的异常序列化
  • #2004 查询:修复了由于缓存未刷新而导致的 SplitHandling bug。 已在 3.14.0 PR #1812 中引入

3.15.2-preview - 2020-11-17

固定

  • #2004 查询:修复了由于缓存未刷新而导致的 SplitHandling bug。 已在 3.14.0 PR #1812 中引入

未列出#20043.15.1 -2020-11-05

固定

  • #1972 个人预览版 Azure Active Directory:修复了 master 中的 TokenCredentialCache 超时逻辑和端口测试
  • #1984 个人预览版 Azure Active Directory:修复了使用错误范围值时出现的问题

未列出#20043.15.0 -2020-10-21

已添加

  • #1944 性能:添加直接版本以获取响应标头改进
  • #1933 更改源:添加了可通过全新 EmitOldContinuationToken 迁移的全新延续令牌格式。
  • #1933 更改源:添加了在出现 304 错误时重试的功能,并且不再修改 HasMoreResults
  • #1926 查询:为 c# 查询分析器添加了当服务互操作不可用时对 IN 子句中多个参数的支持。
  • #1798 个人预览版 Azure Active Directory:向 SDK 添加了 Azure Active Directory 支持

固定

  • #1933 更改源:修复了未遵循值的 StartFrom bug

未列出#20043.14.0 -2020-10-09

已添加

  • #1830 更改源估算器:增加了对每个租约的详细估算的支持

未列出#20043.14.0 -2020-10-09

已添加

  • #1876 性能:添加了会话令牌优化
  • #1879 性能:添加了 AuthorizationHelper 改进
  • #1882 性能:添加了 SessionContainer 优化和样式修复
  • #1812 查询:添加了分页库的采用
  • #1920 查询:添加了 RegexMatch 系统函数支持

固定

  • #1875 HttpClient:修复了 WASM 中 HttpResponseMessage.RequestMessage 为 null 的问题
  • #1886 更改源处理器:修复了初始化过程中的故障
  • #1892 GatewayAddressCache:修复了在地址刷新路径上使用 HashSet 时导致 CPU 利用率过高的问题
  • #1909 授权:修复了在执行写入操作时引发 DocumentClientException 的问题
  • #1812 查询:修复了 MalformedContinuationTokenException。 已在 3.7.0 PR #1260 中引入且已在问题 #1364 中报告

3.13.0 - 2020-09-21

已添加

  • #1743 查询性能:添加了在已设置 FeedOptions.PartitionKey 时对非 Windows x64 系统上的非聚合单分区查询跳过“获取查询计划”的功能
  • #1768 性能:添加了 SessionToken 优化,以通过删除存储过程、触发器和 UDF 上用于 CRUD 的会话令牌来减小标头大小
  • #1781 性能:添加了标头优化,从而可减少响应分配(每个请求减少 10 KB)。
  • #1825 RequestOptions.Properties:为应用程序添加了指定请求上下文的功能
  • #1835 性能:添加了 HttpClient 优化以避免双重缓冲网关响应
  • #1837 查询 SystemFunctions:添加了日期/时间系统函数
  • #1842 查询性能:添加了单一实例 QueryPartitionProvider。 在重新创建容器时提供帮助。
  • #1857 性能:在一些位置添加了终结器优化(向 pentp 致谢)
  • #1843 性能:添加了 Transport 序列化、SessionTokenMismatchRetryPolicy 和存储响应字典优化

固定

  • #1757 Batch API:修复大小限制以减少超时
  • #1758 连接性:修复使用 EnableTcpConnectionEndpointRediscovery 时的地址解析调用
  • #1788 暂时性 HTTP 异常:将重试逻辑添加到所有 http 请求
  • #1863 HttpClientHandler:修复了 HttpClientHandler PlatformNotSupportedException

3.13.0-preview - 2020-08-12

已添加

  • #1725 ChangeFeed:添加 ChangeFeedStartFrom 以支持 StartTimes x FeedRanges。 警告:对于预览版 SDK 而言,这是一个中断性变更
  • #1764 性能:添加编译器优化标志
  • #1768 SessionToken:通过删除存储过程、触发器和 UDF 上用于 CRUD 的会话令牌,添加优化以减小标头大小

固定

  • #1757 Batch API:修复大小限制以减少超时
  • #1758 连接性:修复使用 EnableTcpConnectionEndpointRediscovery 时的地址解析调用

3.12.0 - 2020-08-06

已添加

  • #1548 传输:添加优化以统一所有网关类的 HttpClient 使用
  • #1569 Batch API:为“事务批处理”添加请求选项支持
  • #1693 性能:减少 GlobalAddress 冲突解决程序上的锁争用
  • #1712 性能:添加优化以减少 AuthorizationHelper 内存分配
  • #1715 可用性:针对暂时性连接问题添加跨区域重试机制
  • #1721 LINQ:添加对不区分大小写的搜索的支持(通过 jeffpardy)
  • #1733 更改源处理器:添加租用存储的后向兼容性

固定

  • #1548 可用性:修复了 SDK 故障转移逻辑。 HttpClient 对元数据请求使用用户配置的请求超时,从而导致不明确的 OperationCanceledException,而不是用于触发故障转移的 HttpRequestException。
  • #1720 网关跟踪:修复将 ActivityId 设置为 Guid.Empty 的 bug
  • #1728 诊断:通过将 ActivityScope 移动到操作级别来修复它
  • #1740 连接限制:修复 .NET core 以遵循网关连接限制
  • #1744 传输:修复 PortReuseMode 和其他直接配置设置的使用问题

3.11.1-preview - 2020-10-01

  • #1892 性能:通过减少 HashSet 锁争用,修复了由 EnableTcpConnectionEndpointRediscovery 导致的 CPU 利用率过高的问题

3.11.0 - 2020-07-07

3.11.0-preview - 2020-07-07

已添加

  • #158716431667诊断:将同步上下文跟踪添加到所有请求
  • #1617 性能:修复了对象模型层次结构,以将字符串用于相对路径而不是 URI
  • #1639 CosmosClient:添加了针对空键的参数检查,以防止出现不明确的“401 未经授权”异常
  • #1640 批量操作:向批量操作添加了 TimerWheel 以改进延迟
  • #1678 自动缩放:添加到容器生成器

已修复

  • #1638 文档:修复了所有示例:为 FeedIterator 添加 using 语句
  • #1666 CosmosOperationCanceledException:修复了处理程序,可以捕获所有“操作已取消”异常
  • #1682 性能:修复了 EnableTcpConnectionEndpointRediscovery 导致的 CPU 使用率过高问题

3.10.1 - 2020-06-18

  • #1637 TransportHandler:删除了堆栈跟踪输出。 已在 3.10.0 PR 1587 中引入

3.10.0 - 2020-06-18

已添加

  • #1613 查询 FeedIterator:添加了 IDisposable 来修复内存泄漏。 警告:这将需要进行更改以修复用于检查处置的静态分析工具。
  • #1550 CosmosOperationCanceledException:这使用户能够访问通过取消标记取消操作时的诊断。 新类型扩展了 OperationCanceledException,因此它没有破坏当前的异常处理,并且在 ToString() 中包括了 CosmosDiagnostic。
  • #1578 查询:添加了内存优化以防止复制缓冲区
  • #1578 查询:添加了支持来忽略 Contains 和 StartsWith 函数的案例。
  • #1602 诊断:向所有操作添加了 CPU 使用率
  • #1603 文档:添加了新的异常处理文档

固定

  • #1530 ContainerDefinition:修复了 WithDefaultTimeToLive 参数拼写(感谢 tony-xia)
  • #1547#1582查询和读取:修复因未正确处理拆分导致的异常
  • #1578 ApplicationRegion:修复了 ApplicationRegion 以确保故障转移方案使用正确的顺序
  • #1585 查询:使用 QueryExecutionInfo 响应头修复了 Multi- ORDER BY 继续标记支持

3.9.1 - 2020-05-19

3.9.1-preview - 2020-05-19

已修复

  • #1539 CosmosException 和诊断:修复了 ToString(),使其不因重试而呈指数增长。 通过 PR #1189 在 3.7.0 中引入。

3.9.0 - 2020-05-18

已添加

  • #1356#1407#1428#1407添加自动缩放支持。
  • #1398 诊断:针对 .NET Core 添加了 CPU 监视。
  • #1441 传输:添加了 对 的支持 CosmosClientOptions
  • #1457 容器:向容器添加了数据库引用。
  • #1455 序列化程序:将 SDK 序列化程序添加到
  • #1397 CosmosClientBuilder:添加首选区域 和
  • #1439 响应中无内容:增加了让操作不从 Azure Cosmos DB 返回内容的功能。
  • #1398#1516读取源和更改源:添加序列化优化,将内存和 CPU 利用率降低高达 90%。 对象现在作为数组传递给序列化程序。
  • #1516 查询:增加了序列化优化,使内存使用率降低高达 50%,使 CPU 使用率降低高达 25%。 对象现在作为数组传递给序列化程序。

固定

  • #1401#1437:响应类型:修复使用 时使用 的方案上的死锁 Response.Container
  • #1445 传输: 修复 WebAssembly 了 。
  • #1462 UserAgent:修复了功能使用情况跟踪。
  • #1469 诊断: 修复并将运行时间转换为毫秒。
  • #1512 PartitionRoutingHelper:修复由于容器缓存未命中 导致 ReadFeed 的问题。
  • #1530 CosmosClientBuilder:修复了 WithDefaultTimeToLive 参数拼写。

3.9.0-preview3 - 2020-05-11

已添加

  • #1356#1407#1428自动缩放预览版。
  • #1407 自动缩放:添加 CreateContainerIfNotExistsAsync 和 方法。
  • #1410 FeedRange:添加了 Json 序列化支持。
  • #1398 诊断:针对 .NET Core 添加了 CPU 监视。
  • #1441 传输:添加了 对 的支持 CosmosClientOptions
  • #1457 容器:向容器添加了数据库引用。
  • #1453 响应工厂:向公共 API 添加了一个响应工厂。
  • #1455 序列化程序:将 SDK 序列化程序添加到
  • #1397 CosmosClientBuilder:添加首选区域和公共内部 func
  • #1439 响应中无内容:增加了让操作不从 Azure Cosmos DB 返回内容的功能。
  • #1469 诊断:修复 并将运行时间转换为毫秒。

已修复

  • #1398 降低了查询反序列化的内存分配。
  • #1401#1437:响应类型:修复使用 时使用 的方案上的死锁 Response.Container
  • #1445 传输 :WebAssembly 的修复。
  • #1462 UserAgent:修复了功能使用情况跟踪。

3.9.0-preview - 2020-04-17

已添加

  • #1356 自动缩放:已添加到公共预览版

3.8.0-preview - 2020-04-16

已添加

  • #1331 为事务性批处理请求启用了客户端加密/解密

已修复

  • #1369 修复了“order by”查询结果的解密

3.8.0 - 2020-04-07

已添加

  • #1314 添加了用于主动 TCP 连接端检测的配置。
  • #1305 添加了对首选区域自定义的支持。

固定

  • #1312 修复了使用 default(PartitionKey) 时的空引用。
  • #1296 在返回查询结果之前解密已加密的属性。
  • #1345 修复了获取查询计划诊断。

3.7.1-preview - 2020-03-30

  • #1210 添加了更改源拉取模型。
  • #1242 客户端加密 - 修复了不含已加密属性的读取路径中的 bug。
  • #1314 添加了用于主动 TCP 连接端检测的配置。
  • #1312 修复了使用 default(PartitionKey) 时的空引用。
  • #1296 在返回查询结果之前解密已加密的属性。

3.7.0 - 2020-03-26

已添加

  • #1268 添加到 CosmosDiagnostics
  • #1239 使 PolygonCoordinates 类成为公共类。
  • #1233 分区键现在支持运算符 进行相等比较。
  • #1285 向诊断添加了查询计划检索。
  • #1289 查询 恢复优化。
  • #1074 批量操作 API 拥塞控制。

固定

  • #1213现在返回原始堆栈跟踪。
  • #1213现在始终正确填充。 过去存在一个 bug,在某些场景下,错误消息会留在内容流中。
  • #1298包含与相同的信息, CosmosException.ToString() 以确保跟踪所有信息。
  • #1242 客户端加密 - 修复了不含已加密属性的读取路径中的 bug。
  • #1189 查询诊断显示正确的总体时间。
  • #1189 修复了在诊断上下文中导致重复信息的一个 bug。
  • #1263 修复了以下 bug:未在查询流响应上设置间隔后重试。
  • #1198 在调用已释放的时修复 null 引用异常
  • #1274调用所有 SDK 对象(如数据库和引用已释放的客户端的容器)时引发。
  • #1268 修复了和方法丢失请求选项的 bug Database.DeleteStreamAsync
  • #1304 修复了 XML 文档,使其现在可在 Visual Studio 中显示。

3.7.0-preview2 - 2020-03-09

  • #1210 更改源拉取模型。
  • #1242 客户端加密 - 修复了不含已加密属性的读取路径中的 bug。

3.7.0-preview - 2020-02-25

  • #1074 批量操作 API 拥塞控制。
  • #1210 更改源拉取模型。

3.6.0 - 2020-01-23

  • #1105 CosmosClient 不变性 + 可处理项修复

已添加

  • #1097ContainerPropertiesBoundingBoxPropertiesSpatialPath
  • #1061 将有效负载流式传输到
  • #1062 添加了更多诊断信息,包括通过不同的 SDK 层跟踪时间的功能。
  • #1107 源链接支持。
  • #1121深呼吸-第一次读取策略。

固定

  • #1105 自定义序列化程序不再调用 SDK 拥有的会导致序列化异常的类型。
  • #1112 修复 SDK 属性,使其 具有相同的 JSON 属性。
  • #1116 执行异步查询操作时,修复对方案的死锁。
  • #1143 修复了通过资源令牌针对特定分区键执行查询时出现的权限资源链接和授权问题。
  • #1150使用不存在的租约容器时进行修复。

3.5.1 - 2019-12-11

已修复

  • #1060 修复了 DISTINCT 查询中的 Unicode 编码 bug。
  • #1070仅在重新创建集合时,才会重试自动提取的分区键。
  • #1075 针对具有大型标头的错误请求包括了标头大小详细信息。
  • #1078 执行 ASYNC SDK API 时修复了对方案的死锁。
  • #1081 修复了序列化程序中由空引用异常导致的争用条件。
  • #1086 可以 TransactionalBatch 代码路径上修复。
  • #1091 当发生导致引发的分区拆分时,修复查询中的 bug
  • #1089当使用大容量没有分区键的项时修复。

3.5.0 - 2019-12-03

已添加

  • #979QueryRequestOptions 公开。
  • #995 在诊断中包括了会话令牌。
  • #1000 将添加 CosmosClientOptions
  • #1017 添加 到网关调用并使结束时间可为 null。
  • #1038 向资源属性添加了自链接。

已修复

  • #921 修复了在某些情况下保留堆栈跟踪所需的错误处理。
  • #944 对于内部操作,更改源处理器不使用用户序列化程序。
  • #988 修复了由于重试用完/名称缓存过时而导致的查询变异。
  • #954 在多主帐户中,支持对更改源处理器使用“从头开始”功能。
  • #999 修复了抓取额外页面的问题,更新了异常路径上的继续标记,并修复了 order by 继续标记中的非 ASCII 字符。
  • #1013 网关 现在作为请求超时返回。
  • #1020 直接更新包会删除 debug 语句。
  • #1023 修复 标头映射。
  • #1036 修复了查询响应,以在失败时返回 null 内容。
  • #1045 向添加堆栈跟踪和内部异常
  • #1050 向添加模拟构造函数

3.4.1 - 2019-11-06

已修复

  • #978 修复了 和响应类的模拟。

3.4.0 - 2019-11-04

已添加

  • #853 ORDER BY 数组和对象支持。
  • #877 查询诊断现在包含客户端请求诊断信息。
  • #923 批量操作支持现在为公共版。
  • #922 在用户代理中包括了批量操作支持使用情况信息。
  • #934 在查询中保留投影的顺序
  • #952 按未定义和混合类型 支持排序。
  • #965 Batch API 现在为公共版。

固定

  • #901 修复了导致查询响应为每个内容调用创建新流的一个 bug。
  • #918 修复了用于与脚本、权限和冲突相关的迭代器的序列化程序。
  • #936 修复了包含大型资源的批量请求以使异常自然化。

3.3.3 - 2019-10-30

  • #837 修复了非 Windows 平台的分组依据 bug。
  • #927 修复了返回部分结果而非错误的查询。

3.3.2 - 2019-10-16

已修复

  • #905 修复了 LINQ 驼峰式大小写 bug。

3.3.1 - 2019-10-11

已修复

  • #895 修复了在非 Windows 平台上导致格式异常的用户代理 bug。

3.3.0 - 2019-10-09

已添加

  • #801 启用 后的 LINQ 运算符 OrderBy
  • #814 仅限使用已配置终结点的功能。
  • #822查询支持。
  • #844 添加 到容器生成器。

固定

  • #835 修复了导致排序后范围异常的一个 bug。
  • #846 统计信息未正确填充
  • #857 修复了批量操作支持在容器实例之间的可重用性。
  • #860 修复了基础用户代理字符串。
  • #876 默认连接超时从 60 秒减少到 10 秒。

3.2.0 - 2019-09-17

已添加

  • #100 可配置的 Tcp 设置
  • #615#775 向响应添加了请求诊断。
  • #622 添加了针对用户和权限的 CRUD 和查询操作,这启用了 ResourceToken 支持。
  • #716 添加了在 LINQ 查询生成时会启用的驼峰式大小写序列化。
  • #729,#776添加了 countAsync/SumAsync 等 (聚合) LINQ 查询的扩展。
  • #743 添加到 CosmosClientOptions

固定

  • #726 如果发生异常 ,查询 iterator 现在返回 false。
  • #705 用户代理后缀被截断。
  • #753 冲突异常的原因未传播。
  • #756 使用 更改源 处理器将在第一次执行委托时没有项。
  • #761使用自定义任务计划程序(如管理程序)时发生死锁。
  • #769 会话一致性和网关模式会话-令牌 bug 修复 - 几个罕见的非成功案例会话令牌可能不正确。
  • #772 修复了在使用自定义序列化程序的情况下或产品/服务不存在的情况下引发的吞吐量异常。
  • #785 引发状态代码 HttpStatusCode.Unauthorized 键不正确。

3.2.0-preview2 - 2019-09-10

  • #585#741 批量操作执行支持。
  • #427 事务性批处理支持(项 CRUD)。

3.2.0-preview - 2019-08-09

  • #427 事务性批处理支持(项 CRUD)。

3.1.1 - 2019-08-12

已添加

  • #650自定义序列化。

固定

  • #612 修复了使用 分区键的 的 Bug。
  • #614 修复了空间路径序列化以及与较旧索引版本的兼容性。
  • #619 修复 了 .NET Framework 的异常。
  • #626状态代码现在返回"确定"表示成功,而不是无效状态代码 0 或"已接受"。
  • #629 将验证 修复为仅限分区键路径。
  • #630 修复了用户代理以包含环境和包信息。

3.1.0 - 2019-07-29 - 未列出

已添加

  • #541 向客户端和查询选项添加了一致性级别。
  • #544 为 LINQ 添加了继续标记支持。
  • #557 向项请求选项添加了触发器选项。
  • #572 在 上添加分区键验证
  • #581 将 LINQ 添加到 API。
  • #592 添加到 容器生成器。
  • #597 将继续标记属性添加到
  • #604 添加 LINQ 扩展方法。

固定

  • #548 修复了 中的错误类型消息
  • #558 位置缓存 锁争用修复。
  • #561现在适用于 null 查询。
  • #567 查询可以正确处理不同的语言区域性。
  • #574 修复了查询分析因意外异常而失败时的空错误消息。
  • #576 查询将输入正确地序列化为流。

3.0.0 - 2019-07-15

  • .NET SDK 版本 3.0.0 正式发布。
  • 适用于 .NET Standard 2.0,此版本支持 .NET Framework 4.6.1+ 和 .NET Core 2.0+。
  • 新对象模型,顶级的 CosmosClient 和方法在相关的数据库和容器类之间进行拆分。
  • 具有高性能的新流 API。
  • 对更改源处理器 API 提供了内置支持。
  • 适用于 CosmosClient、容器和更改源处理器的 Fluent 生成器 API。
  • 惯用的吞吐量管理 API。
  • 适用于数据库、容器、项、查询和吞吐量请求的粒度化 RequestOptionsResponseTypes
  • 缩放未分区容器的功能。
  • 可扩展和可自定义的序列化程序。
  • 支持自定义处理程序的可扩展请求管道。

发布 & 停用日期

Microsoft 至少会在停用 SDK 前提前 12 个月发出通知,以便顺利转换为更高版本/受支持版本。 新特性和功能以及优化仅添加到当前 SDK,因此建议始终尽早升级到最新的 SDK 版本。

2022 年 8 月 31 日之后,Azure Cosmos DB 将不再进行 bug 修复,不再添加新功能,也不再支持 1.x 版的 Azure Cosmos DB .NET 或 .NET Core SDK for SQL API。 如果你不想升级,则从 1.x 版 SDK 发送的请求将继续由 Azure Cosmos DB 服务处理。

版本 发布日期 停用日期
3.6.0 2020 年 1 月 23 日 ---
3.5.1 2019 年 12 月 11 日 ---
3.5.0 2019 年 12 月 3 日 ---
3.4.1 2019 年 11 月 6 日 ---
3.4.0 2019 年 11 月 4 日 ---
3.3.3 2019 年 10 月 30 日 ---
3.3.2 2019 年 10 月 16 日 ---
3.3.1 2019 年 11 月 8 日 ---
3.3.0 2019 年 10 月 8 日 ---
3.2.0 2019 年 9 月 18 日 ---
3.1.1 2019 年 8 月 12 日 ---
3.1.0 2019 年 7 月 29 日 ---
3.0.0 2019 年 7 月 15 日 ---

常见问题

如何收到即将停用的 SDK 的通知?

Azure 会在即将停用的 SDK 的支持结束之前提前 12 个月进行通知,以便协助平稳地转换到支持的 SDK。 我们会通过以下通信通道通知你:Azure 门户、Azure 更新以及与分配的服务管理员的直接通信。

在这 12 个月期间,我是否可以使用即将停用的 Azure Cosmos DB SDK 来创作应用程序?

可以,你可以在 12 个月的宽限期内使用即将停用的 Azure Cosmos DB SDK 创作、部署和修改应用程序。 建议在 12 个月的宽限期内根据相应情况迁移到支持的较新版本 Azure Cosmos DB SDK。

停用日期之后,使用不受支持的 Azure Cosmos DB SDK 的应用程序会发生什么情况?

停用日期之后,Azure Cosmos DB 将不再进行 bug 修复、添加新功能或为已停用的 SDK 版本提供支持。 如果不想升级,从已停用的 SDK 版本发送的请求将继续由 Azure Cosmos DB 服务提供服务。

哪些 SDK 版本将包含最新功能和更新?

新功能和更新将仅添加到最新的受支持的主要 SDK 版本的最新次要版本。 建议始终使用最新版本,以充分利用新功能、性能改进和 bug 修补程序。 如果使用的是未停用的旧版本 SDK,则对 Azure Cosmos DB 进行的请求仍然有效,但是你无法访问任何新功能。

如果无法在截止日期之前更新应用程序,该怎么办?

我们建议尽早升级到最新 SDK。 SDK 标记为要停用之后,你将有 12 个月的时间来更新应用程序。 如果无法在停用日期之前更新,从已停用的 SDK 版本发送的请求将继续由 Azure Cosmos DB 提供服务,因此正在运行的应用程序将继续运行。 但 Azure Cosmos DB 将不再进行 bug 修复、添加新功能或为已停用的 SDK 版本提供支持。

如果你有支持计划并需要技术支持,请创建支持工单以联系我们

另请参阅

若要了解有关 Cosmos DB 的详细信息,请参阅 Azure Cosmos DB 服务页。