2017-02-23 4 views
1

Ich habe diesen Code:DocumentDb erfordert 64bit

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

wo SQL ist SqlQuerySpec Objekt. Es führt zu einem Fehler: "Partition Routing-Informationen können nicht aus der Abfrage extrahiert werden, wenn in einem 32-Bit-Prozess ausgeführt wird. Um Ihre Abfrage abzuschließen und diese Ausnahme zu vermeiden, stellen Sie sicher, dass Ihr Host-Prozess 64-Bit ist."

Ich weiß, wie Sie es beheben, indem Sie es in 64-Bit-Prozess ausführen. Allerdings hostet ich meine App in Azure, und das Hosting mit 64 zwingt mich, auf eine teurere Stufe zu upgraden (ich verdiene kein Geld mit dieser App, also würde ich es lieber auf der niedrigsten Stufe halten). Gibt es eine Möglichkeit, es in 32-Bit-Umgebung arbeiten zu lassen? Meine Sammlung ist nicht partitioniert.

+0

Hier ist ein Git-Problem zu diesem Fehler: https://github.com/Azure/azure-documentdb-dotnet/issues/140 –

Antwort

3

.NET SDK 1.11.3 hat die Lösung dafür. Sie können eine einzelne Partitionsauflistung in einem 32-Bit-Modus in dieser Version erstellen.

Ab Version 1.11.4 unterstützen wir auch das Erstellen einer partitionierten Sammlung oder das Durchführen einer Querpartitionsabfrage im 32-Bit-Modus.

32-Bit-Modus ist ein bisschen weniger performant, aber wenn Sie eine Beschränkung der Aktualisierung auf 64-Bit haben, sollte es in Ordnung sein.

Bitte lassen Sie mich wissen, wenn das Ihr Problem nach dem Upgrade auf das neueste SDK behebt.

+0

Danke, auf 1.12 aktualisiert und es funktioniert jetzt. –