Microsoft Graph:“ Request_ResourceNotFound”与“ ResourceNotFound”与“ ErrorItemNotFound”与“ ItemNotFound”

时间:2019-08-21 12:22:37

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

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

  

代码:Request_ResourceNotFound   消息:资源'S-1-5-21-2428866552-2013070483-421003753-10106'不存在,或者其查询的参考属性对象之一不存在。

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

为了确保正确的错误处理,我研究了文档并感到困惑:Request_ResourceNotFound在哪里记录?该代码本身未在Graph Docs中列出,我发现了很多不同的Stackoverflow问题或GitHub问题,它们具有“相似”但错误代码不同,例如error code "ResourceNotFound"herehere,然后我发现这个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却以某种方式丢失。

我了解该图是不同产品的保护伞,但是是否存在一些常规错误代码,或者(对于用户而言)是“找不到用户”的“正确”错误代码?

1 个答案:

答案 0 :(得分:0)

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

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

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