我们的应用程序将AzureAD
中的用户数据“同步”到我们的数据库,我注意到某些请求失败并出现以下错误:
代码:Request_ResourceNotFound 消息:资源'S-1-5-21-2428866552-2013070483-421003753-10106'不存在,或者其查询的参考属性对象之一不存在。
该错误本身是有道理的,因为该条目不是我们Azure AD
的一部分。
为了确保正确的错误处理,我研究了文档并感到困惑:Request_ResourceNotFound
在哪里记录?该代码本身未在Graph Docs中列出,我发现了很多不同的Stackoverflow问题或GitHub问题,它们具有“相似”但错误代码不同,例如error code "ResourceNotFound"或here或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
却以某种方式丢失。
我了解该图是不同产品的保护伞,但是是否存在一些常规错误代码,或者(对于用户而言)是“找不到用户”的“正确”错误代码?
答案 0 :(得分:0)
HTTP的标准错误代码为“未找到”。我建议使用
e.StatusCode == System.Net.HttpStatusCode.NotFound
然后就不会造成混乱。如果对特定的已知错误代码有特殊处理,请检查该代码是否作为辅助测试。这避免了需要测试代码的所有可能性。