Az Azure Cosmos DB jogosulatlan kivételeinek diagnosztizálása és hibaelhárítása
A KÖVETKEZŐRE VONATKOZIK: NoSQL
HTTP 401: A HTTP-kérelemben található MAC-aláírás nem ugyanaz, mint a kiszámított aláírás. Ha a "A HTTP-kérelemben található MAC-aláírás nem ugyanaz, mint a kiszámított aláírás" hibaüzenetet kapta, az alábbi forgatókönyvek okozhatják.
A régebbi SDK-k esetében a kivétel érvénytelen JSON-kivételként jelenhet meg a helyes 401 jogosulatlan kivétel helyett. Az újabb SDK-k megfelelően kezelik ezt a forgatókönyvet, és érvényes hibaüzenetet adnak.
Hibaelhárítási lépések
Az alábbi lista a jogosulatlan kivételek ismert okait és megoldásait tartalmazza.
A kulcs nem volt megfelelően elforgatva a leggyakoribb forgatókönyv
A 401-es MAC-aláírás röviddel a kulcsváltás után látható, és végül módosítások nélkül leáll.
Megoldás:
Lecserélődött a kulcs, és a kulcsváltás során nem követték az ajánlott eljárásokat. Az Azure Cosmos DB-fiók kulcsváltása az Azure Cosmos DB-fiók méretétől függően néhány másodperctől akár napokig is eltarthat.
A kulcs helytelenül van konfigurálva
A 401 MAC-aláírással kapcsolatos probléma konzisztens lesz, és az adott kulcsot használó összes hívásnál előfordul.
Megoldás:
A kulcs helytelenül van konfigurálva az alkalmazásban, és nem a megfelelő kulcsot használja a fiókhoz, vagy a teljes kulcsot nem másolta ki.
Az alkalmazás írási műveletekhez használja a csak olvasható kulcsokat
A 401 MAC-aláírási probléma csak olyan írási műveleteknél fordul elő, mint a létrehozás vagy a csere, de az olvasási kérések sikeresek.
Megoldás:
Váltson az alkalmazásra olvasási/írási kulcs használatára, hogy a műveletek sikeresen befejeződjenek.
Versenyfeltétel tároló létrehozásával
A 401 MAC-aláírással kapcsolatos probléma röviddel a tároló létrehozása után jelentkezik. Ez a probléma csak a tároló létrehozásának befejezéséig jelentkezik.
Megoldás:
Van egy versenyfeltétel a tárolók létrehozásával. Egy alkalmazáspéldány a tároló létrehozása előtt próbál hozzáférni a tárolóhoz. Ennek a versenyfeltételnek a leggyakoribb forgatókönyve az, ha az alkalmazás fut, és a tároló törlődik, és ugyanazzal a névvel újra létrejön. Az SDK megpróbálja használni az új tárolót, de a tároló létrehozása még folyamatban van, így nem rendelkezik a kulcsokkal.
A tömeges mód engedélyezve
Ha a Tömeges mód engedélyezve van, az olvasási és írási műveletek a legjobb hálózati teljesítményre vannak optimalizálva, és egy dedikált Tömeges API-val küldik el a háttérrendszernek. A 401-ben a Tömeges módú olvasási műveletek végrehajtásakor fellépő hibák gyakran azt jelentik, hogy az alkalmazás csak olvasási kulcsokat használ.
Megoldás
Használja az írási/olvasási kulcsokat vagy az engedélyezési mechanizmust írási hozzáféréssel a tömeges módú műveletek engedélyezésekor.
Következő lépések
- Az Azure Cosmos DB .NET SDK használatakor felmerülő problémák diagnosztizálása és elhárítása.
- Ismerje meg a .NET v3 és a .NET v2 teljesítményre vonatkozó irányelveit.
- Az Azure Cosmos DB Java v4 SDK használatakor felmerülő problémák diagnosztizálása és elhárítása.
- További információ a Java v4 SDK teljesítményre vonatkozó irányelveiről.