Diagnostika a řešení potíží s neautorizovanými výjimkami služby Azure Cosmos DB
PLATÍ PRO: NoSQL
HTTP 401: Podpis MAC nalezený v požadavku HTTP není stejný jako vypočítaný podpis. Pokud se vám zobrazila chybová zpráva 401 " Podpis MAC nalezený v požadavku HTTP není stejný jako vypočítaný podpis", může to být způsobeno následujícími scénáři.
U starších sad SDK se tato výjimka může zobrazit jako neplatná výjimka JSON místo správné výjimky 401– neautorizováno. Novější sady SDK správně zpracovávají tento scénář a poskytují platnou chybovou zprávu.
Postup při řešení potíží
Následující seznam obsahuje známé příčiny a řešení neoprávněných výjimek.
Klíč nebyl správně otočen, je nejběžnější scénář.
Podpis MAC 401 se krátce po obměně klíčů projeví a nakonec se zastaví bez jakýchkoli změn.
Řešení:
Došlo k obměně klíče, která se neřídila osvědčenými postupy. Obměně klíčů účtu služby Azure Cosmos DB může trvat od několika sekund až po dny v závislosti na velikosti účtu služby Azure Cosmos DB.
Klíč je chybně nakonfigurovaný.
Problém s podpisem mac 401 bude konzistentní a stane se u všech volání používajících tento klíč.
Řešení:
Klíč je v aplikaci chybně nakonfigurovaný a používá pro účet nesprávný klíč nebo nebyl zkopírován celý klíč.
Aplikace pro operace zápisu používá klíče jen pro čtení.
K problému s podpisem mac 401 dochází pouze u operací zápisu, jako je vytvoření nebo nahrazení, ale požadavky na čtení jsou úspěšné.
Řešení:
Přepněte aplikaci tak, aby používala klíč pro čtení a zápis, aby se operace úspěšně dokončily.
Stav časování s vytvořením kontejneru
K problému s podpisem mac 401 dochází krátce po vytvoření kontejneru. K tomuto problému dochází pouze do dokončení vytváření kontejneru.
Řešení:
Při vytváření kontejneru existuje stav časování. Instance aplikace se pokouší získat přístup ke kontejneru před dokončením vytváření kontejneru. Nejběžnějším scénářem této podmínky časování je, že aplikace běží a kontejner se odstraní a znovu vytvoří se stejným názvem. Sada SDK se pokusí použít nový kontejner, ale vytváření kontejneru stále probíhá, takže nemá klíče.
Povolený hromadný režim
Při použití hromadného režimu jsou operace čtení a zápisu optimalizované pro nejlepší výkon sítě a odesílají se do back-endu prostřednictvím vyhrazeného rozhraní Bulk API. Chyby 401 při provádění operací čtení s povoleným hromadným režimem často znamenají, že aplikace používá klíče jen pro čtení.
Řešení
Při provádění operacísch
Další kroky
- Diagnostika a řešení potíží při použití sady .NET SDK služby Azure Cosmos DB
- Přečtěte si informace o pokynech k výkonu pro .NET v3 a .NET v2.
- Diagnostika a řešení potíží při používání sady Azure Cosmos DB Java SDK v4
- Přečtěte si o pokynech k výkonu sady Java SDK v4.