Delen via


Foutcodes en foutafhandeling | Graph API-concepten

Van toepassing op: Graph API | Azure Active Directory (AD)

Fout tijdens het verwerken van de logica voor het reageren als probleemloos mogelijk bij verschillende voorwaarden en de best mogelijke ervaring bieden aan hun klanten moeten implementeren, clienttoepassingen die gebruikmaken van de Azure Active Directory (AD) Graph API. Het onderwerp beschreven welke typen fouten die de Azure AD Graph-API retourneert en bevat algemene richtlijnen over hoe deze te verwerken.

Belangrijk

Wordt aangeraden dat u Microsoft Graph in plaats van Azure AD Graph API voor toegang tot Azure Active Directory-resources. Ontwikkeling van onze producten nu concentreren zich bij Microsoft Graph en geen verdere verbeteringen zijn gepland voor Azure AD Graph API. Er zijn een zeer beperkt aantal scenario's waarvoor Azure AD Graph API nog steeds mogelijk geschikt; Zie voor meer informatie de Microsoft Graph of de Azure AD Graph blogbericht in het Office-ontwikkelaarscentrum.

Foutafhandeling Graph API

Typen fouten

Graph API fouten optreden in de volgende categorieën.

  • Client fouten. Client-fouten worden aangeduid met de HTTP-statuscodes 400-serie. Bevatten ze objecten met ongeldige waarden, objecten die ontbreken vereiste eigenschappen of eigenschapswaarden en proberen te krijgen tot een niet-bestaande resource bij het bijwerken van een alleen-lezen eigenschap en het vereiste verificatietoken weglaten. Los het onderliggende probleem voordat u probeert de aanvraag voor het oplossen van deze problemen.
  • Server-fouten. Server-fouten worden aangeduid met 500-serie HTTP-statuscodes, zoals een storing van de tijdelijke map. De meeste van deze fouten zijn tijdelijk en kunnen worden opgelost door de aanvraag opnieuw proberen.
  • Netwerkprotocol fouten. Een verscheidenheid aan netwerk gerelateerde fouten kan optreden tijdens een aanvraag verzenden of ontvangen van een antwoord, zoals host name resolution fouten voortijdig gesloten verbindingen en SSL-onderhandeling-fouten. De meeste van deze fouten niet kan worden opgelost door opnieuw uit te voeren; het onderliggende probleem moet worden vastgesteld. Er zijn fouten, zoals host naamomzetting fouten of time-outs mogelijk echter worden opgelost door de aanvraag opnieuw proberen.

Fout berichtstructuur

Graph API fouten hebben een opgemaakte instantie die uit een HTTP-statuscode: een bericht en waarden bestaat. Gebruik de eigenschappen van de hoofdtekst van de fout in de logica voor foutafhandeling.

Opmerking: sommige HTTP-antwoorden kunnen niet onder andere de bericht-code-waarden antwoordtekst omdat de aanvraag wordt gerouteerd via proxy en gateway-services. Zorg dat u bevatten standaard logica dat fouten op basis van de HTTP-statuscode die alleen kan worden verwerkt.

Hier volgt een voorbeeld van een HTTP 400 Request_BadRequest-fout.

 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
    }
 }

De hoofdtekst van elk bericht heeft code, bericht en eigenschappen van waarden.

  • Code: uw logica foutafhandeling aan op basis van de vertakking ontwerpen.

    "code" : "Request_BadRequest"
    
  • Bericht: een taal/waarde-tuple die een leesbare foutbericht vertegenwoordigt. De inhoud is in het waardeveld. In het volgende voorbeeld wordt de aanvraag mislukt, omdat de waarde van de mailNickname eigenschap ontbreekt.

    "message" : {
         "lang" : "en",
         "value" : "A value is required for property 'mailNickname' of resource 'Group'."
    }
    
  • Waarden: een verzameling naam/waarde-paren met meer informatie over de aard van de fout. Er zijn geen waarden zijn opgenomen in het volgende voorbeeld.

    "values" : null
    

Verwijzing naar de code van fouten

HTTP-foutcodes

De volgende tabel bevat Graph API foutcodes, foutberichten en acties rekening moet houden bij het corrigeren van fouten.

In het algemeen HTTP 500-serie fouten reageren op nieuwe pogingen, bij voorkeur verdeeld over steeds lang tijdsintervallen ('opnieuw met een interval van back-off') en met een factor van willekeurige distributie. 400-serie fouten duiden op een probleem dat moet worden verholpen voordat u probeert.

HTTP-statuscode Foutcode Foutbericht Details
400 Directory_ExpiredPageToken De waarde van de opgegeven token is verlopen en kan niet meer worden opgenomen in uw aanvraag.
400 Directory_ResultSizeLimitExceeded De maximale grootte resultaat is overschreden De aanvraag kan niet worden uitgevoerd omdat deze gekoppeld met te veel resultaten is. Deze fout treedt zelden.
400 DomainVerificationCodeNotFound Verificatie van domein mislukt, omdat het verificatieproces kan de TXT-record met overeenkomende verificatiecode niet vinden.
400 ObjectConflict Naam van het domein bestaat al in een niet-geverifieerd domein in dit bedrijf.
400 ObjectConflict Naam van het domein bestaat al in een geverifieerde domeinnaam in dit bedrijf.
400 ObjectInUse Het domein dat momenteel wordt verwezen door een gebruiker, groep of toepassing met meerdere tenants kan niet worden verwijderd.
400 ObjectPendingDeletion Kan niet controleren of een een bestaand domein dat verwijderd wordt.
400 ObjectPendingTakeover Een domein van een tenant overname kan niet worden verwijderd.
400 Request_BadRequest Ongeldige aanvraag. Corrigeer de aanvraag voordat het opnieuw proberen. Hiermee geeft een fout in de aanvraag, zoals een ongeldige waarde voor eigenschap of een niet-ondersteunde query-argument. De aanvraag voordat u probeert te herstellen.
400 Request_DataContractVersionMissing Versie van de gegevensparameter contract ontbreekt. Api-versie als een queryparameter met alle uw aanvragen bevatten.
400 Request_InvalidDataContractVersion De opgegeven api-versie is ongeldig. De waarde moet exact overeenkomen met een ondersteunde versie.
400 Request_InvalidRequestUrl Aanvraag-url is ongeldig. De aanvraag moet zoals /tenantdomainname/Entity of /$metadata. Tenant domeinnaam mag geen van de gecontroleerde, niet-geverifieerde domeinnamen of context-id.
400 Request_UnsupportedQuery De GET-aanvraag wordt niet ondersteund. Los de aanvraagparameters en probeer het opnieuw.
401 Authentication_ExpiredToken Uw toegangstoken is verlopen. Vernieuw de voordat de aanvraag is ingediend. Toegangstoken is verlopen. Verleng het token en voer vervolgens opnieuw.
401 Authentication_MissingOrMalformed Toegangstoken ontbreekt of is onjuist gevormd. De access_token-waarde in de autorisatie-header is een ontbrekend of onjuist gevormd. Deze waarde is vereist. Gebruik de waarde in het verificatietoken.
401 Authorization_IdentityDisabled De aanroepende toepassing principal is uitgeschakeld. De principal die is opgegeven in het toegangstoken is in de map, maar is uitgeschakeld. Schakelt u het account in de map en probeer het opnieuw.
401 Authorization_IdentityNotFound De identiteit van de aanroepende toepassing kan niet worden gemaakt. De principal die is opgegeven in het toegangstoken is niet gevonden in de map. Deze fout kan optreden omdat het token verlopen is, de principal is verwijderd uit de map of directory-synchronisatie wordt vertraagd.
403 Authentication_Unauthorized Ongeautoriseerde aanvraag. Het token bevat ongeldige of niet-ondersteunde claims. De aanvraag-token ophalen opnieuw en voer de aanvraag vervolgens opnieuw uit.
403 Authorization_RequestDenied De opgegeven referenties hebben niet voldoende machtigingen om deze aanvraag. De aanvraag wordt geweigerd vanwege onvoldoende rechten. Bijvoorbeeld, heeft een niet-administratieve principal geen machtiging om te verwijderen van een resource.
403 Directory_QuotaExceeded De quotumlimiet voor directory-object voor de {tenantName} is overschreden. Vraag uw beheerder te Verhoog de quotalimiet of verwijderen van objecten om te beperken van het gebruikte quotum. Een directory is overschreden. De tenant mogelijk te veel objecten of de objecten mogelijk te veel waarden. Dit gebeurt ook wanneer er te veel objecten zijn gemaakt op voor de principal. Verhoog het aantal maximale toegestane objecten voor de tenant of principal of verklein het aantal waarden die zijn opgenomen in de aanvraag maken of bij te werken.
404 Directory_ObjectNotFound Kan niet lezen van de bedrijfsgegevens uit de directory.
404 Request_ResourceNotFound Resource {resource} bestaat niet of een van de aangevraagde verwijzingseigenschap objecten zijn niet aanwezig is. De resource met de URI bestaat niet. Wijzig de waarde en probeer de aanvraag.
409 Request_MultipleObjectsWithSameKeyValue Een enkele bron voor het resultaat werd verwacht, maar er zijn meerdere resources gevonden. Werk de objecten als het conflict wilt oplossen. Deze fout kan optreden wanneer er twee of meer objecten met dezelfde sleutelwaarde, bijvoorbeeld wanneer twee gebruikers de dezelfde UserPrincipalName hebben.
429 Te veel aanvragen. Deze fout treedt op wanneer aanvragen worden beperkt. Een voorgestelde wachttijd wordt geretourneerd als de waarde opnieuw proberen na van de response-header. De aanvraag opnieuw proberen na een wachttijd van het aanbevolen aantal seconden.
500 Service_InternalServerError Is een interne serverfout opgetreden. Interne serverfout opgetreden tijdens het verwerken van de aanvraag.
502 [All] “... Service niet beschikbaar...' Een server die fungeert als gateway of proxy een fout gevonden in een andere server tijdens het verwerken van de aanvraag. Wacht een paar minuten en probeer de aanvraag.
503 Directory_ConcurrencyViolation Fout door gelijktijdige aanvragen worden ingediend bij de tenant. Wacht even en probeer het opnieuw.
503 Fout opgetreden tijdens de controle van DNS (Opmerking: kan zijn veroorzaakt door verschillende oorzaken hebben, zoals DNS is momenteel niet beschikbaar).
Authentication_Unknown Interne serverfout. Deze foutcode wordt gebruikt wanneer andere foutcodes zijn niet van toepassing.
Authentication_UnsupportedTokenType Het type token gepresenteerd is niet verwerkt. Alleen bearer-tokens worden ondersteund. Het type token wordt niet ondersteund. Wijzig het tokentype voordat de aanvraag opnieuw proberen.
Directory_BindingRedirection Informatie van de tenant is niet lokaal beschikbaar. Gebruik de volgende URL's voor de informatie. Wanneer de tenant-partitie niet beschikbaar in het datacenter is, moeten clients verbinding maken met de URl in het antwoord geretourneerd.
Directory_BindingRedirectionInternalServerError Informatie van de tenant is niet lokaal beschikbaar. De server heeft een interne fout aangetroffen tijdens het vullen van de dichtstbijzijnde datacenter-eindpunten. Wanneer een binding omleiding-uitzondering optreedt, wordt de lijst met dichtstbijzijnde datacenter eindpunten voor de service wordt gevuld. Deze fout geeft aan dat een uitzondering opgetreden tijdens het vullen van de lijst. Probeer de query opnieuw uit.
Directory_CompanyNotFound Kan niet lezen van de bedrijfsgegevens uit de directory. Er is een fout opgetreden tijdens het laden van bedrijfsgegevens uit Active Directory.
Directory_ReplicaUnavailable De voorkeur replica is niet beschikbaar. Probeer het opnieuw zonder een replica sleutel van de sessiekoptekst. De header x-ms-replica-sessie-key weglaten en probeer het vervolgens opnieuw.
Headers_DataContractVersionMissing De versiekop data contract ontbreekt. Omvatten x-ms-dirapi-data-contract-version in uw aanvraag. De versie van het contract ontbreekt in de aanvraag.
Headers_HeaderNotSupported Koptekst {0} is momenteel niet ondersteund. De aanvraag bevat een niet-ondersteunde HTTP-header. Wijzig de header en probeer de aanvraag opnieuw.
Request_InvalidReplicaSessionKey De opgegeven replica-sessiesleutel is niet geldig. De replica-sessiesleutel los en probeer de aanvraag opnieuw.
Request_ThrottledPermanently Uw aanvraag is permanent beperkt. Neem contact op met ondersteuning om het probleem op te. De tenant herhaaldelijk en blijft de tokenaanvraag snelheid limiet overschreden. Aanvragen van de tenant zijn afgewezen totdat de service opnieuw wordt onderhandeld. Voor hulp contact op met Microsoft Support.

Aanvullende bronnen