【问题标题】:Azure DocumentDB .NET SDK does not contains all HTTP Status CodesAzure DocumentDB .NET SDK 不包含所有 HTTP 状态代码
【发布时间】:2017-07-05 06:04:08
【问题描述】:

查看 CosmosDB REST API 返回的 HTTP 状态码文档时,有一些状态码在 .NET SDK 中是不存在的。

HTTP Status Codes for Azure Cosmos DB

假设 HttpStatusCode(System.Net) 中不存在状态码 449。

“449 重试方式”

操作遇到暂时性错误。

这只发生在写操作上。

重试操作是安全的。

如何使用 Azure DocDb 的 .NET 客户端 SDK 处理这种状态代码?

还是 SDK 自己处理这些?

【问题讨论】:

  • 只需将状态与 449 进行比较。HttpStatusCode 是一个枚举,这意味着它是一个具有 一些 预定义值的整数。您可以将任何整数传递给枚举。 HttpStatusCode 没有预定义的 all 状态码值,例如 418- I'm a teapot 等有趣的值
  • 其实只有枚举HttpStatusCode才能访问该值。我试图找到状态码的 int 值但没有用。
  • 这不是真的。只需将结果转换为 int。枚举一个整数。事实上,答案的代码正是显示了这种类型的转换
  • 哦,我明白了。谢谢 Panagiotis。

标签: c# azure azure-cosmosdb


【解决方案1】:

如您所说,如果我们检查 DocumentClientExceptionStatusCode 属性(可以为空),我们会发现System.Net.HttpStatusCode中不存在状态码449。

在检查 Azure DocumentDB .NET SDK 的源代码后,SDK 似乎可以自己处理这些。

【讨论】:

  • 谢谢弗雷德。哎呀,我完全忘记了 ILSpy 的存在......我应该首先通过 ILSpy 查找它。猜猜,我已经习惯了在谷歌上搜索太多开源代码:-)
猜你喜欢
  • 1970-01-01
  • 2022-11-02
  • 2016-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-17
相关资源
最近更新 更多