Внутренняя ошибка Cosmos DB при получении документов - PullRequest
1 голос
/ 27 мая 2019

Использование обозревателя данных Azure Cosmos DB не показывает никаких значений, хотя я знаю, что в нем есть данные. При использовании моего веб-приложения я вижу, что оно вставляет данные. Я также могу проверить это, запросив db.files.stats().count из локального графического интерфейса. Однако в любой точке пользовательского интерфейса, где я пытаюсь читать из БД, происходит сбой - по-видимому, та же проблема, что и в графических интерфейсах, которые я пытался использовать.

Глядя на вкладку сети в Chrome, я вижу неудачный запрос, отправляемый на конечную точку https://portal-prod-northeurope-mongo.portal-prod-northeurope.p.azurewebsites.net всякий раз, когда я пытаюсь обновить набор результатов. Ответ возвращается с

Ошибка поиска команды: при обработке этого запроса произошла неизвестная ошибка сервера.

Я получаю ту же ошибку, когда запрашиваю базу данных с локальным графическим интерфейсом, поэтому я предполагаю, что она не имеет прямого отношения к порталу Azure. Я пытался удалить и восстановить коллекции, но безрезультатно. Когда я запускаю все это локально на эмуляторе Cosmos DB, он работает просто отлично.

Коллекции определены так:

    az cosmosdb collection create --resource-group $resourceGroup `
                                  --name $dbService `
                                  --collection-name 'files' `
                                  --db-name $db `
                                  --partition-key-path '/p'

    az cosmosdb collection create --resource-group $resourceGroup `
                                  --name $dbService `
                                  --collection-name 'users' `
                                  --db-name $db

    az cosmosdb collection create --resource-group $resourceGroup `
                                  --name $dbService `
                                  --collection-name 'projects' `
                                  --db-name $db `
                                  --partition-key-path '/cb'

и пример объекта следующий:

internal class File
{
    [JsonProperty(PropertyName = "id")]
    public Guid Id { get; set; }

    [JsonProperty(PropertyName = "of")]
    public string OriginalFilename { get; set; }

    [JsonProperty(PropertyName = "if")]
    public string InternalFilename { get; set; }

    [JsonProperty(PropertyName = "ua")]
    public DateTime UploadedAt { get; set; }

    [JsonProperty(PropertyName = "p")]
    public Guid ProjectId { get; set; }

    [JsonProperty(PropertyName = "su")]
    public string StorageUri { get; set; }

    [JsonProperty(PropertyName = "t")]
    public byte Type { get; set; }

    public override string ToString() => JsonConvert.SerializeObject(this);
}

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Согласно комментариям, причина, по которой вы столкнулись с этой проблемой, заключается в том, что вы используете Cosmos DB SDK для учетной записи Mongo API.И портал, и графический пользовательский интерфейс пытаются использовать данные через клиента Mongo, а ваши данные сохраняются через другой API.

В SDK Cosmos DB для сохранения документов используется API SQL .Учетные записи API Mongo предназначены для использования и использования через клиенты / драйверы Mongo.

Если вашему приложению требуется Mongo, используйте клиенты / драйверы Mongo для хранения документов, не используйте Cosmos DB SDK.

Если вашему приложению не требуется Mongo (поскольку вы используете SDK Cosmos DB, это не похоже на это), создайте учетную запись Core API (SQL) .

1 голос
/ 27 мая 2019

Есть ли здесь миграция данных ... как создаются данные в базе данных Cosmos? Можете ли вы предоставить пример документа Json со всеми сгенерированными системой свойствами. Проблемы с проводником данных, как правило, существуют в этих перенесенных данных, где предоставляется предварительно определенное значение идентификатора, но оно не соответствует формату, требуемому для Cosmos DB.

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