在 Azure Cosmos DB 中診斷錯誤的要求例外狀況並進行疑難排解
適用於:NoSQL
HTTP 狀態碼 400 表示要求包含無效資料,或遺漏必要的參數。
遺漏識別碼屬性
在此案例中,通常會看到下列錯誤:
輸入內容無效,因為遺漏必要的屬性 'id;'
具有此錯誤的回應表示傳送至服務的 JSON 檔缺少必要的識別碼屬性。
解決方案
根據 REST 規格使用字串值指定 id
屬性,作為文件的一部分。SDK 不會自動產生這個屬性的值。
分割區索引鍵類型無效
在此案例上,通常會看到如下錯誤:
分割區索引鍵 ... 無效。
具有此錯誤的回應表示分割區索引鍵值屬於無效類型。
解決方案
分割區索引鍵的值應該是字串或數字,請確定此值屬於預期的類型。
分割區索引鍵值錯誤
在此案例中,通常會看到下列錯誤:
回應狀態碼未指出成功:錯誤的要求 (400);子狀態:1001
從文件擷取的 PartitionKey 與標頭中指定的 PartitionKey 不符
具有此錯誤的回應表示您正在執行作業,而且正在傳遞的分割區索引鍵值不符合預期屬性的文件主體值。 如果集合的分割區索引鍵路徑為 /myPartitionKey
,文件具有稱為 myPartitionKey
的屬性,但其值不符合呼叫 SDK 方法時所提供的值 (作為分割區索引鍵值)。
解決方案
傳送符合文件屬性值的分割區索引鍵值參數。
數值分割區索引鍵值精確度遺失
在此案例上,通常會看到如下錯誤:
要求的分割區索引鍵超出索引鍵範圍,可能是因為失去分割區索引鍵值的有效位數
發生此錯誤的回應可能是因為具有數值分割索引鍵的檔上的作業所造成,其值超出 Azure Cosmos DB 支援的值。 如需數值屬性值的最大長度,請參閱 個別專案限制 。
解決方案
如果需要精確的數值,請考慮針對數據分割索引鍵使用類型 string
。
下一步
- 針對使用 Azure Cosmos DB .NET SDK 時發生的問題,進行診斷和疑難排解。
- 了解 .NET v3 和 .NET v2 的效能指導方針。
- 針對使用 Azure Cosmos DB Java v4 SDK 時發生的問題進行診斷和疑難排解。
- 了解 Java v4 SDK 的效能指導方針。