Problemen met ongeldige aanvraag-uitzonderingen vaststellen en oplossen in Azure Cosmos DB
VAN TOEPASSING OP: NoSQL
De HTTP-statuscode 400 vertegenwoordigt de aanvraag ongeldige gegevens of ontbrekende vereiste parameters.
De id-eigenschap ontbreekt
In dit scenario is het gebruikelijk om de fout te zien:
De invoerinhoud is ongeldig omdat de vereiste eigenschappen - id; ' - ontbreken
Een antwoord met deze fout betekent dat het JSON-document dat naar de service wordt verzonden de vereiste id-eigenschap ontbreekt.
Oplossing
Geef een id
eigenschap met een tekenreekswaarde op volgens de REST-specificatie als onderdeel van uw document. De SDK's genereren geen automatisch gegenereerde waarden voor deze eigenschap.
Ongeldig type partitiesleutel
In dit scenario is het gebruikelijk om fouten te zien, zoals:
Partitiesleutel ... is ongeldig.
Een antwoord met deze fout betekent dat de partitiesleutelwaarde van een ongeldig type is.
Oplossing
De waarde van de partitiesleutel moet een tekenreeks of een getal zijn, zorg ervoor dat de waarde van de verwachte typen is.
Verkeerde partitiesleutelwaarde
In dit scenario is het gebruikelijk om deze fouten te zien:
Antwoordstatuscode geeft geen succes aan: BadRequest (400); Substatus: 1001
PartitionKey die uit het document is geëxtraheerd, komt niet overeen met de partitiesleutel die is opgegeven in de koptekst
Een antwoord met deze fout betekent dat u een bewerking uitvoert en een partitiesleutelwaarde doorgeeft die niet overeenkomt met de hoofdwaarde van het document voor de verwachte eigenschap. Als het partitiesleutelpad van de verzameling is /myPartitionKey
, heeft het document een eigenschap die wordt aangeroepen myPartitionKey
met een waarde die niet overeenkomt met wat is opgegeven als partitiesleutelwaarde bij het aanroepen van de SDK-methode.
Oplossing
Verzend de parameter voor de partitiesleutelwaarde die overeenkomt met de waarde van de documenteigenschap.
Precisieverlies van numerieke partitiesleutelsleutel
In dit scenario is het gebruikelijk om fouten te zien, zoals:
De aangevraagde partitiesleutel valt buiten het sleutelbereik, mogelijk vanwege verlies van precisie van partitiesleutelwaarde
Een antwoord met deze fout wordt waarschijnlijk veroorzaakt door een bewerking in een document met een numerieke partitiesleutel waarvan de waarde buiten de waarde valt die wordt ondersteund door Azure Cosmos DB. Zie Limieten per item voor de maximale lengte van de numerieke eigenschapswaarde.
Oplossing
Overweeg het gebruik van het type string
voor partitiesleutel als u nauwkeurige numerieke waarden nodig hebt.
Volgende stappen
- Problemen vaststellen en oplossen wanneer u de Azure Cosmos DB .NET SDK gebruikt.
- Meer informatie over prestatierichtlijnen voor .NET v3 en .NET v2.
- Problemen vaststellen en oplossen wanneer u de Azure Cosmos DB Java v4 SDK gebruikt.
- Meer informatie over prestatierichtlijnen voor Java v4 SDK.