web-dev-qa-db-fra.com

La ressource Azure DocumentDB Owner n'existe pas

J'ai la même erreur icrosoft.Azure.Documents.DocumentClientException: Message: {"Errors": ["La ressource propriétaire n'existe pas"]}, c'est mon scénario. Lorsque j'ai déployé mon application Web sur Azure et que j'essaie d'obtenir un document de docDb, cette erreur est générée. La docdb existe dans Azure et contient le document que je recherche.

Ce qui est bizarre, c’est que cela fonctionne bien à partir de ma machine locale (fonctionnant à partir de VS). J'utilise les mêmes paramètres dans Azure et local. Quelqu'un a une idée à ce sujet.

Merci

6
user1301722

La ressource propriétaire n'existe pas

se produit lorsque vous avez donné un nom de base de données incorrect.

Par exemple, lors de la lecture d'un document avec client.readDocument(..), où le client est une instance DocumentClient, le nom de la base de données indiqué dans docLink est incorrect.

10

J'ai eu le même problème. J'ai constaté que Visual Studio 2017 publie à l'aide de ma configuration de version au lieu de la configuration de test que j'ai sélectionnée. Dans mon cas, la configuration de la version portait un nom de base de données CosmosDB différent qui n'existait pas , ce qui entraînait l'erreur "La ressource propriétaire n'existe pas" lors de la publication sur mon serveur de test Azure. Super frustrant et un message d'erreur terrible.

2
Steve Perkins

Cette erreur semble être liée à la lecture d'une base de données/collection/document qui n'existe pas. J'ai eu la même erreur exacte pour une base de données qui existait mais j'ai entré le nom en minuscule, cette erreur semble se produire quelle que soit votre clé de partition.

La meilleure solution que je puisse trouver pour le moment est d’envelopper le 

var response = await client.ReadDocumentAsync(UriFactory.CreateDocumentUri(database, collection, "documentid"));

appeler dans un catch try, pas très élégant et je préférerais beaucoup la réponse revient avec plus de détails, mais ceci est Microsoft pour vous.

Quelque chose comme ci-dessous devrait faire l'affaire.

                Model myDoc = null;

                try
                {
                    var response = await client.ReadDocumentAsync(UriFactory.CreateDocumentUri(database, collection, document));
                    myDoc = (Model )(dynamic)response.Resource;
                }
                catch { }


                if (myDoc != null)
                {
                   //do your work here
                }

C’est pour avoir une meilleure idée de l’erreur, puis créer la ressource manquante afin de ne plus avoir l’erreur. 

Quelques ressources que je devais parcourir avant d’arriver à cette conclusion: https://github.com/DamianStanger/DocumentDbDemo

Azure DocumentDB Lecture du document ressource introuvable

1
Louie Bacaj