Dela via


Diagnostisera och felsöka obehöriga undantag i Azure Cosmos DB

GÄLLER FÖR: NoSQL

HTTP 401: MAC-signaturen som hittades i HTTP-begäran är inte samma som den beräknade signaturen. Om du fick 401-felmeddelandet "MAC-signaturen som hittades i HTTP-begäran är inte samma som den beräknade signaturen" kan den orsakas av följande scenarier.

För äldre SDK:er kan undantaget visas som ett ogiltigt JSON-undantag i stället för rätt 401-undantag. Nyare SDK:er hanterar det här scenariot korrekt och ger ett giltigt felmeddelande.

Felsökningsanvisningar

Följande lista innehåller kända orsaker och lösningar för obehöriga undantag.

Nyckeln roterades inte korrekt är det vanligaste scenariot

401 MAC-signaturen visas kort efter en nyckelrotation och stoppas så småningom utan några ändringar.

Lösning:

Nyckeln roterades och följer inte metodtipsen. Rotationen av Azure Cosmos DB-kontonyckeln kan ta allt från några sekunder till möjligen dagar beroende på azure Cosmos DB-kontostorleken.

Nyckeln är felkonfigurerad

401 MAC-signaturproblemet är konsekvent och inträffar för alla anrop som använder den nyckeln.

Lösning:

Nyckeln är felkonfigurerad i programmet och använder fel nyckel för kontot, eller så kopierades inte hela nyckeln.

Programmet använder skrivskyddade nycklar för skrivåtgärder

401 MAC-signaturproblemet inträffar bara för skrivåtgärder som att skapa eller ersätta, men läsbegäranden lyckas.

Lösning:

Växla programmet till att använda en läs-/skrivnyckel så att åtgärderna kan slutföras.

Konkurrenstillstånd med skapa container

401 MAC-signaturproblemet visas kort efter att en container har skapats. Det här problemet uppstår bara tills containern har skapats.

Lösning:

Det finns ett konkurrenstillstånd när containern skapas. En programinstans försöker komma åt containern innan containern har skapats. Det vanligaste scenariot för det här konkurrenstillståndet är om programmet körs och containern tas bort och återskapas med samma namn. SDK:n försöker använda den nya containern, men containern skapas fortfarande så att den inte har nycklarna.

Massläge aktiverat

När du använder Massläge aktiverat optimeras läs- och skrivåtgärder för bästa nätverksprestanda och skickas till serverdelen via ett dedikerat mass-API. 401-fel vid läsåtgärder med Massläge aktiverat innebär ofta att programmet använder skrivskyddade nycklar.

Lösning

Använd läs-/skrivnycklarna eller auktoriseringsmekanismen med skrivåtkomst när du utför åtgärder med Massläge aktiverat.

Nästa steg