【问题标题】:Microsoft Graph: "Request_ResourceNotFound" vs. "ResourceNotFound" vs. "ErrorItemNotFound" vs. "ItemNotFound"Microsoft Graph:“Request_ResourceNotFound”与“ResourceNotFound”与“ErrorItemNotFound”与“ItemNotFound”
【发布时间】:2019-08-29 02:22:43
【问题描述】:

我们的应用程序将用户数据从AzureAD“同步”到我们的数据库,我注意到一些请求失败并出现以下错误:

代码:Request_ResourceNotFound 消息:资源“S-1-5-21-2428866552-2013070483-421003753-10106”不存在或其查询的引用属性对象之一不存在。

错误本身是有道理的,因为此条目不是我们Azure AD 的一部分。

为了确保正确处理错误,我研究了文档并感到困惑:Request_ResourceNotFound 记录在哪里?代码本身未在Graph Docs 中列出,我发现很多不同的 Stackoverflow 问题或 GitHub 问题“相似”,但错误代码不同,例如error code "ResourceNotFound" or here or here 然后我发现这个Stackoverflow questions 有很多类似的错误代码:

  switch (e.Error.Code)
                    {
                        case "Request_ResourceNotFound":
                        case "ResourceNotFound":
                        case "ErrorItemNotFound":
                        //case "itemNotFound":
                        //    return JsonConvert.SerializeObject(new { Message = $"User '{email}' was not found." }, Formatting.Indented);
                        ...
                    }

.NET SDK 还列出了一些错误代码,但 Request_ResourceNotFound 不知何故丢失了。

我知道图表是不同产品的保护伞,但是否有一些通用错误代码或(如果是用户)哪个是“未找到用户”的“正确”错误代码?

【问题讨论】:

    标签: c# microsoft-graph-api microsoft-graph-sdks


    【解决方案1】:

    HTTP 有一个“未找到”的标准错误代码。我建议使用

    e.StatusCode == System.Net.HttpStatusCode.NotFound
    

    然后就不会有混乱了。如果您对特定的已知错误代码有特殊处理,则检查该代码作为辅助测试。这避免了需要测试代码的所有可能性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-27
      • 2022-08-26
      • 2021-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 2011-11-11
      相关资源
      最近更新 更多