2017-02-23 5 views
1

У меня есть этот код:DocumentDb требует 64bit

  var list = _client.CreateDocumentQuery<MatchActivityDataModel>(_collection.SelfLink, sql, new FeedOptions() { EnableCrossPartitionQuery = false }); 
      var result = list.ToList(); 

где SQL является SqlQuerySpec объект. Это приводит к ошибке: «Информация о маршрутизации раздела не может быть извлечена из запроса при запуске в 32-разрядном процессе. Чтобы завершить запрос и избежать этого исключения, убедитесь, что ваш хост-процесс является 64-разрядным».

Я знаю, как исправить это, запустив его в 64-битном процессе. Тем не менее, я размещаю свое приложение в Azure, и его размещение с 64 приводит меня к обновлению до более дорогого уровня (я не зарабатываю деньги из этого приложения, поэтому я предпочел бы сохранить его на минимальном уровне). Есть ли способ заставить его работать в 32-битной среде? Моя коллекция не разделена.

+0

Это ошибка git об этой ошибке: https://github.com/Azure/azure-documentdb-dotnet/issues/140 –

ответ

3

У .NET SDK 1.11.3 есть исправление для этого. Вы можете создать единую коллекцию разделов в 32-битном режиме в этой версии.

Начиная с 1.11.4, мы также поддерживаем создание секционированной коллекции или выполнение запроса перекрестного раздела в 32-битном режиме.

32-битный режим немного менее эффективен, но если у вас есть ограничение на обновление до 64-битного, это должно быть хорошо.

Пожалуйста, дайте мне знать, если это решит вашу проблему после обновления до последнего SDK.

+0

Спасибо, обновлено до 1.12, и теперь это работает. –