Cosmos всегда получает 404 при выполнении container.ReadItemAsyn c, даже если элемент есть - PullRequest
0 голосов
/ 12 июля 2020

Я рву волосы из-за этой странной ошибки. Я создал azure cosmosdb и вручную вставил элемент в контейнер, а затем запросил его из C# кода:

        public async Task<T> ReadAsync<T>(string documentId, string collectionName, string partitionKey)
            where T : class
        {
            Requires.NotNullOrWhiteSpace(documentId, nameof(documentId));
            Requires.NotNullOrWhiteSpace(collectionName, nameof(collectionName));

            return await this.PerformActionAsync(
                $"ReadAsync {documentId}. Collection: {collectionName}.",
                async client =>
                {
                    try
                    {
                        Container container = client.GetDatabase(this.cosmosDbDatabaseName).GetContainer(collectionName);
                        ItemResponse<T> response = await container.ReadItemAsync<T>(id: documentId, partitionKey: new PartitionKey(partitionKey)).ConfigureAwait(true);
                        return response.Resource;
                    }
                    catch (CosmosException ex)
                    {
                        if (ex.StatusCode == HttpStatusCode.NotFound)
                        {
                            resultStatus = NotFound;
                            return null;
                        }

                        resultStatus = Exception;
                        throw new Exception("The server encountered an internal error. Please retry the request.");
                    }
   

Код всегда возвращает 404 NotFound ! Но я могу увидеть элемент в контейнере из DataExplorer!

Может ли кто-нибудь пролить свет на меня? Большое спасибо.

Спасибо!

1 Ответ

0 голосов
/ 12 июля 2020

черт .. меня запутал partitionKey, который должен быть значением partitionKey!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...