Dela via


Felkoder och felhantering | Graph API-begrepp

Gäller för: Graph API | Azure Active Directory (AD)

Klientprogram som använder Azure Active Directory (AD) Graph API ska implementera felhantering logik för att agera som smidigt som möjligt olika villkor och ge bästa möjliga upplevelse till sina kunder. I avsnittet beskrivs typerna av fel som Azure AD Graph API returnerar och innehåller allmänna råd om hur du hanterar dem.

Viktigt

Vi rekommenderar starkt att du använder Microsoft Graph i stället för Azure AD Graph API för att komma åt resurser i Azure Active Directory. Vårt utvecklingsarbete är nu samlade på Microsoft Graph och inga fler förbättringar som planeras att Azure AD Graph API. Det finns ett begränsat antal scenarier som Azure AD Graph API kan fortfarande vara lämplig. Mer information finns i Microsoft Graph eller Azure AD Graph blogginlägget i Office Dev Center.

Hantera Graph API-fel

Typer av fel

Graph API-fel uppstår i följande kategorier.

  • Klientfel. Klientfel representeras av 400-serien HTTP-statuskoder. De inkluderar objekt med ogiltiga värden, objekt som saknas obligatoriska egenskaper och egenskapsvärden, försöker komma åt en obefintlig resurs, försök att uppdatera en skrivskyddad egenskap och utelämna autentiseringstoken som krävs. För att lösa dessa fel, åtgärda det underliggande problemet innan du försöker begäran.
  • Fel. Serverfel representeras av 500-serien http-statuskoder som ett tillfälligt directory-fel. De flesta av dessa fel är tillfälliga och kan lösas genom försök.
  • / Nätverksprotokoll fel. Ett flertal nätverksrelaterade fel kan inträffa när de skickar en begäran eller ta emot ett svar, till exempel fel på värddatorn name resolution, tidigt stängd anslutningar och SSL-förhandling-fel. De flesta av dessa fel kan inte matchas av du försöker; det underliggande problemet måste åtgärdas. Dock kan vissa fel, till exempel värden namnmatchning fel eller avbrott, matchas av försök.

Fel meddelandestruktur

Graph API-fel har en formaterad text som består av en HTTP-statuskod, ett meddelande och värden. Använd egenskaperna för brödtexten fel i din felhantering logik.

Obs: vissa HTTP-svar kan inte innehålla svarstexten code-meddelande-värden eftersom begäran dirigeras via proxy och gateway-tjänster. Se till att inkludera standard logik som kan hantera felen baserat på HTTP-statuskoden enbart.

Följande är ett exempel på ett 400 Request_BadRequest för HTTP-fel.

 HTTP/1.1 400 Bad Request
 Content-Type: application/json;odata=minimalmetadata;charset=utf-8
 request-id: ddca4a7e-02b1-4899-ace1-19860901f2fc
 Date: Tue, 02 Jul 2013 01:48:19 GMT
 …
 
 {
     "odata.error" : {
         "code" : "Request_BadRequest",
         "message" : {
             "lang" : "en",
             "value" : "A value is required for property 'mailNickname' of resource 'Group'."
         },
     "values" : null
    }
 }

Varje meddelandetexten har koden, meddelandet och egenskaper för värden.

  • Koden: utforma din felhantering logik att Förgrena baserat på koden.

    "code" : "Request_BadRequest"
    
  • Meddelandet: en tuppel för språk-värde som representerar ett läsbart felmeddelande. Innehållet är i värdefältet. I följande exempel, misslyckas denna begäran eftersom värdet för den mailNickname egenskapen saknas.

    "message" : {
         "lang" : "en",
         "value" : "A value is required for property 'mailNickname' of resource 'Group'."
    }
    
  • Värden: en samling av namn/värde-par som ger mer information om felet. I följande exempel ingår inga värden.

    "values" : null
    

Felkod referens

HTTP-felkoder

I följande tabell visas Graph API felkoder, felmeddelanden och åtgärder att tänka på när du korrigerar fel.

I allmänhet HTTP 500-serien fel besvara omförsök, helst fördelade över allt länge tidsintervall (”försök igen med ett intervall som inte”) och med en slumpmässig distribution faktor. 400-serien felen indikerar ett problem som måste åtgärdas innan du försöker igen.

HTTP-statuskod Felkod Felmeddelande Information
400 Directory_ExpiredPageToken Värdet sidan token har upphört att gälla och kan inte längre inkluderas i din begäran.
400 Directory_ResultSizeLimitExceeded Resultatet storleksgränsen har överskridits Begäran kan inte utföras eftersom den är associerad med för många resultat. Detta fel uppstår mycket sällan.
400 DomainVerificationCodeNotFound Verifiering av domän misslyckas eftersom verifieringsprocessen inte kan hitta TXT-posten med matchande Verifieringskod.
400 ObjectConflict Domännamnet finns redan i en overifierade domän i det här företaget.
400 ObjectConflict Domännamnet finns redan i en verifierad domän i det här företaget.
400 ObjectInUse Det går inte att ta bort domänen som för närvarande refereras av en användare, grupp eller flera program
400 ObjectPendingDeletion Det går inte att verifiera en domän som kommer att tas bort.
400 ObjectPendingTakeover Det går inte att ta bort en domän håller på att en klient övertag
400 Request_BadRequest Felaktig begäran. Åtgärda begäran innan du försöker igen. Anger ett fel i begäran, till exempel ett ogiltigt värde för egenskap eller ett argument som inte stöds av frågan. Åtgärda begäran innan du försöker igen.
400 Request_DataContractVersionMissing Data kontraktet version parameter saknas. Med api-versionen som en frågeparameter med alla begäranden.
400 Request_InvalidDataContractVersion Den angivna api-versionen är ogiltig. Värdet måste exakt matcha en version som stöds.
400 Request_InvalidRequestUrl Url-begäran var ogiltigt. Begäran ska vara som /tenantdomainname/Entity eller /$metadata. Klientdomännamn kan vara någon av de verifierade, overifierade domännamn eller kontext-id.
400 Request_UnsupportedQuery GET-begäran stöds inte. Korrigera parametrarna och försök igen.
401 Authentication_ExpiredToken Åtkomst-token har upphört att gälla. Förnya det innan du skickar begäran. Åtkomst-token har upphört att gälla. Förnya token och skicka sedan igen.
401 Authentication_MissingOrMalformed Åtkomst-Token saknas eller har fel format. Access_token värdet i authorization-huvud är felaktig eller saknas. Det här värdet krävs. Använd värdet i token för autentisering.
401 Authorization_IdentityDisabled Det anropande programmet säkerhetsobjekt är inaktiverad. Huvudnamn som anges i åtkomsttoken är i katalogen, men är inaktiverad. Aktivera kontot i katalogen på nytt och försök igen.
401 Authorization_IdentityNotFound Det gick inte att upprätta identiteten för det anropande programmet. Huvudnamn som anges i den åtkomst-token hittades inte i katalogen. Detta kan inträffa eftersom token är inaktuell, objektet har tagits bort från katalogen eller katalogsynkronisering är fördröjd.
403 Authentication_Unauthorized Obehörig begäran. Token innehåller anspråk för ogiltig eller stöds inte. Hämta token för begäran igen och försök sedan begäran.
403 Authorization_RequestDenied De angivna autentiseringsuppgifterna har inte tillräcklig behörighet för att göra denna begäran. Begäran nekades på grund av otillräcklig behörighet. Till exempel saknar ett huvudnamn för icke-administrativa behörighet att ta bort en resurs.
403 Directory_QuotaExceeded Kvotgräns för directory-objekt för den {tenantName} har överskridits. Be din administratör för att öka kvotgränsen eller ta bort objekt för att minska kvoten som används. En katalog kvot har överskridits. Klienten kanske har för många objekt eller objekt har för många värden. Detta inträffar även när för många objekt har skapats på för objektet. Öka antalet högsta tillåtna objekt för klient- eller principal eller minska antalet värden som ingår i denna begäran skapa/uppdatera.
404 Directory_ObjectNotFound Det gick inte att läsa företagsinformation från katalogen.
404 Request_ResourceNotFound Resursen {resource} finns inte eller något av dess efterfrågade referensegenskapen objekt finns inte. Resursen som identifieras av URI: N finns inte. Ändra värdet och försök sedan begäran.
409 Request_MultipleObjectsWithSameKeyValue En enskild resurs förväntades för resultatet, men flera resurser hittades. Uppdatera objekt för att lösa konflikten. Det här felet kan inträffa när det finns två eller flera objekt som har samma nyckelvärde, t.ex. när två användare ha samma UserPrincipalName.
429 För många begäranden. Det här felet uppstår när begäranden begränsas. Föreslagna väntetiden returneras värdet försök igen efter för rubriken. Försök begäran efter en väntan på det rekommenderade antalet sekunder.
500 Service_InternalServerError Påträffade ett internt serverfel. Internt serverfel när begäran bearbetades.
502 [All] “... Tjänsten tillgänglig... ” En server som fungerar som en gateway eller proxy påträffade ett fel från en annan server vid bearbetning av begäran. Vänta några minuter och försök sedan begäran.
503 Directory_ConcurrencyViolation Fel på grund av samtidiga begäranden som görs till klienten. Vänta en kort stund och försök igen.
503 Ett fel uppstod under verifiering av DNS (Obs: kan orsakas av olika skäl, t.ex. DNS är för närvarande inte tillgängligt).
Authentication_Unknown Internt serverfel. Den här felkoden används när det inte gäller andra felkoder.
Authentication_UnsupportedTokenType Typ av token som presenteras hanteras inte. Ägar-token stöds. Token-typer stöds inte. Ändra tokentypen innan du försöker begäran igen.
Directory_BindingRedirection Klient-information är inte tillgänglig lokalt. Använd följande URL: er för att hämta information om. När klienten partitionen inte är tillgänglig i datacentret måste klienter ansluta till den URl som returnerades i svaret.
Directory_BindingRedirectionInternalServerError Klient-information är inte tillgänglig lokalt. Ett internt fel uppstod vid försök att fylla i de närmaste datacenter-slutpunkterna. När ett undantag för omdirigering av bindning uppstår fylls listan över närmaste datacenter slutpunkter för tjänsten. Det här felet indikerar ett undantag när listan fylldes. Frågan och försök igen.
Directory_CompanyNotFound Det gick inte att läsa företagsinformation från katalogen. Ett fel uppstod vid inläsning av företagets information från katalogtjänsten.
Directory_ReplicaUnavailable Den primära repliken är inte tillgänglig. Försök igen utan någon replik session key-huvud. Utelämna huvudet x-ms-replik-sessionsnyckel, och försök sedan igen.
Headers_DataContractVersionMissing Data servicekontrakt version-huvud saknas. Inkludera x-ms-dirapi-data-contract-version i begäran. Kontraktet klientversionen saknas i begäran.
Headers_HeaderNotSupported Huvudet {0} stöds inte för närvarande. Begäran innehåller ett HTTP-huvud som inte stöds. Ändra rubriken och försök sedan igen.
Request_InvalidReplicaSessionKey Replik sessionsnyckeln som angetts är inte giltig. Åtgärda sessionsnyckeln replik och försök sedan igen.
Request_ThrottledPermanently Din begäran har begränsats permanent. Kontakta supporten om du vill adress problemet. Klienten överskreds flera gånger och beständigt tokenbegäran hastighet. Begäranden från innehavaren avvisas förrän tjänsten omförhandlas. Kontakta Microsoft Support för hjälp.

Ytterligare resurser