2017-05-15 8 views
7

Nach dem Upgrade von DocumentDB-Client auf Version 1.14.0 (CosmosDB Änderungen) meine Anwendung unerwartet beendet, wenn in Azure als Cloud-Service ausgeführt wird. Ich habe keine Probleme, es lokal gegen die neueste Version des Emulators zu laufen. Ich bekomme auch keine Probleme, wenn ich es lokal gegen die Azure CosmosDB-Instanz ausführe. Dies scheint auf ein Problem mit der Cloud-Service-Umgebung hinzuweisen (ein Downgrade auf die Vorgängerversion 1.13.4 funktioniert).DocumentDB Client 1.14 tötet laufenden Prozess

Hier sind die Fehler von Event Log:

Faulting application name: Application.exe, version: 1.0.21.0, time stamp: 0x59196ef2 
Faulting module name: DocumentDB.Spatial.Sql.dll, version: 1.14.8.3, time stamp: 0x59125a74 
Exception code: 0xc000001d 
Fault offset: 0x0000000000074753 
Faulting process id: 0x1754 
Faulting application start time: 0x01d2cd9ce28ddb4f 
Faulting application path: C:\Resources\directory\08707c89190040c7b18ae72ed40addee.Host.LocalStoreDirectory\orleans-backend\1.0.21\Application.exe 
Faulting module path: C:\Resources\directory\08707c89190040c7b18ae72ed40addee.Host.LocalStoreDirectory\orleans-backend\1.0.21\DocumentDB.Spatial.Sql.dll 
Report Id: da991426-1eff-4d89-bf21-118198848fef 
Faulting package full name: 
Faulting package-relative application ID: 

Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Runtime.InteropServices.SEHException 
    at Microsoft.Azure.Documents.ServiceInteropWrapper.GetPartitionKeyRangesFromQuery(IntPtr, System.String, Boolean, Boolean, System.String[], UInt32[], UInt32, Microsoft.Azure.Documents.PartitionKind, IntPtr, UInt32, UInt32 ByRef) 
    at Microsoft.Azure.Documents.Query.QueryPartitionProvider.GetPartitionedQueryExecutionInfoInternal(Microsoft.Azure.Documents.SqlQuerySpec, Microsoft.Azure.Documents.PartitionKeyDefinition, Boolean, Boolean) 
    at Microsoft.Azure.Documents.Routing.PartitionRoutingHelper.GetProvidedPartitionKeyRanges(Microsoft.Azure.Documents.SqlQuerySpec, Boolean, Boolean, Boolean, Microsoft.Azure.Documents.PartitionKeyDefinition, Microsoft.Azure.Documents.Query.QueryPartitionProvider, System.String, Microsoft.Azure.Documents.Query.QueryInfo ByRef) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<TryGetTargetPartitionKeyRangeAsync>d__23.MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<TryGetTargetPartitionKeyRangeAsync>d__23, Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<TryGetTargetPartitionKeyRangeAsync>d__23 ByRef) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext.TryGetTargetPartitionKeyRangeAsync(Microsoft.Azure.Documents.DocumentServiceRequest, Microsoft.Azure.Documents.DocumentCollection, Microsoft.Azure.Documents.Query.QueryPartitionProvider, Microsoft.Azure.Documents.Routing.IRoutingMapProvider, Microsoft.Azure.Documents.Routing.Range`1<System.String>, System.Collections.Generic.List`1<Microsoft.Azure.Documents.Query.CompositeContinuationToken>) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<ExecuteOnceAsync>d__f.MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<ExecuteOnceAsync>d__f, Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<ExecuteOnceAsync>d__f ByRef) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext.ExecuteOnceAsync(Microsoft.Azure.Documents.IDocumentClientRetryPolicy, System.Threading.CancellationToken) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<>c__DisplayClass2+<<ExecuteInternalAsync>b__1>d__4.MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<>c__DisplayClass2+<<ExecuteInternalAsync>b__1>d__4, Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<<ExecuteInternalAsync>b__1>d__4 ByRef) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<>c__DisplayClass2.<ExecuteInternalAsync>b__1() 
    at Microsoft.Azure.Documents.BackoffRetryUtility`1+<>c__DisplayClass2+<<ExecuteAsync>b__0>d__4[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.BackoffRetryUtility`1+<>c__DisplayClass2+<<ExecuteAsync>b__0>d__4[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<<ExecuteAsync>b__0>d__4<System.__Canon> ByRef) 
    at Microsoft.Azure.Documents.BackoffRetryUtility`1+<>c__DisplayClass2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<ExecuteAsync>b__0() 
    at Microsoft.Azure.Documents.BackoffRetryUtility`1+<ExecuteRetry>d__1b[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.BackoffRetryUtility`1+<ExecuteRetry>d__1b[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<ExecuteRetry>d__1b<System.__Canon> ByRef) 
    at Microsoft.Azure.Documents.BackoffRetryUtility`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ExecuteRetry(System.Func`1<System.Threading.Tasks.Task`1<System.__Canon>>, System.Func`3<System.Exception,System.Threading.CancellationToken,System.Threading.Tasks.Task`1<Microsoft.Azure.Documents.ShouldRetryResult>>, System.Threading.CancellationToken, System.Action`1<System.Exception>) 
    at Microsoft.Azure.Documents.BackoffRetryUtility`1+<ExecuteAsync>d__a[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.BackoffRetryUtility`1+<ExecuteAsync>d__a[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<ExecuteAsync>d__a<System.__Canon> ByRef) 
    at Microsoft.Azure.Documents.BackoffRetryUtility`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].ExecuteAsync(System.Func`1<System.Threading.Tasks.Task`1<System.__Canon>>, Microsoft.Azure.Documents.IRetryPolicy, System.Threading.CancellationToken, System.Action`1<System.Exception>) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<ExecuteInternalAsync>d__8.MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext+<ExecuteInternalAsync>d__8, Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<ExecuteInternalAsync>d__8 ByRef) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext.ExecuteInternalAsync(System.Threading.CancellationToken) 
    at Microsoft.Azure.Documents.Query.DocumentQueryExecutionContextBase+<ExecuteNextAsync>d__4.MoveNext() 
    at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Start[[Microsoft.Azure.Documents.Query.DocumentQueryExecutionContextBase+<ExecuteNextAsync>d__4, Microsoft.Azure.Documents.Client, Version=1.14.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]](<ExecuteNextAsync>d__4 ByRef) 
    at Microsoft.Azure.Documents.Query.DocumentQueryExecutionContextBase.ExecuteNextAsync(System.Threading.CancellationToken) 
    at Microsoft.Azure.Documents.Linq.DocumentQuery`1+<ExecuteNextPrivateAsync>d__2d`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext() 

ich in ein anderes verwandtes Problem ausgeführt haben: beim Laufen DocumendDB Client 1.13.4 gegen die neuesten lokalen Emulator ich die folgende Ausnahme erhalten:

Newtonsoft.Json.JsonReaderException 
{"Unexpected character encountered while parsing value: ≻. Path '', line 0, position 0."} 
    at Newtonsoft.Json.JsonTextReader.ParseValue() 
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, JsonContract contract, Boolean hasConverter) 
    at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) 
    at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) 
    at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) 
    at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) 
    at Microsoft.Azure.Documents.Query.QueryPartitionProvider.GetPartitionedQueryExecutionInfoInternal(SqlQuerySpec querySpec, PartitionKeyDefinition partitionKeyDefinition, Boolean requireFormattableOrderByQuery, Boolean isContinuationExpected) 
    at Microsoft.Azure.Documents.Routing.PartitionRoutingHelper.GetProvidedPartitionKeyRanges(SqlQuerySpec querySpec, Boolean enableCrossPartitionQuery, Boolean parallelizeCrossPartitionQuery, Boolean isContinuationExpected, PartitionKeyDefinition partitionKeyDefinition, QueryPartitionProvider queryPartitionProvider, String clientApiVersion, QueryInfo& queryInfo) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext.<TryGetTargetPartitionKeyRangeAsync>d__1e.MoveNext() 
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Microsoft.Azure.Documents.Query.DefaultDocumentQueryExecutionContext.<ExecuteOnceAsync>d__a.MoveNext() 

Offensichtlich gab es eine brechende Änderung in der Handhabung Partitionstasten.

+0

Seems haben Sie die Problemumgehung zu beheben dieses Problem gefunden. Es könnte die Kompatibilität der neuesten DocumentDB-Client-Bibliothek sein, würde ich dieses Problem melden. Außerdem könnten Sie Ihr Problem [hier] hinzufügen (https://github.com/Azure/azure-documentdb-dotnet/issues). –

+1

Problem gemeldet https://github.com/Azure/azure-documentdb-dotnet/issues/259 –

+2

Ich benutze 1.14.0 in einem azurblauen Webjob, dasselbe Problem. Downgrade auf 1.13.4 löste es für jetzt. Das ist eindeutig eine schlechte Integrationsprüfung. Was könnte der Grund dafür sein, dass dies nur in azurblauen Webseiten/Jobs geschieht? – vip32

Antwort

5

Dies ist ein Problem mit DocumentDB SDK:

zusammenfassen, um, wir ein kritisches Problem in .NET SDK v1.14.0 identifiziert Veröffentlichung auf x64-Maschinen, die SSE4-Anweisungen nicht unterstützen. Wir arbeiten an einem Patch, aber unterdessen benutzen Sie bitte https://www.nuget.org/packages/Microsoft.Azure.DocumentDB/1.13.4 oder früher. Wir werden ein Update veröffentlichen, wenn ein Patch verfügbar ist.

Das Problem wurde in 1.14.1

https://www.nuget.org/packages/Microsoft.Azure.DocumentDB/1.14.1

fest
+0

Vielen Dank! Das hat mein Problem ebenfalls gelöst. Für andere verursachte mein Fehler die Meldung "Die angegebene CGI-Anwendung hat einen Fehler festgestellt und der Server hat den Prozess beendet" beim Aufruf einer Web-API-Methode, die eine Abfrage für Cosmo DB ausgeführt hat. Wenn Sie das sehen, versuchen Sie das von Jakub erwähnte 1.14.1-Paket – mohrtan

2

Ich habe das gleiche Problem festgestellt. Für mich passiert es nur beim Aufruf von IDocumentQuery.ExecuteNextAsync.

Hinzufügen eines neuen und Abrufen eines einzelnen Dokuments funktioniert gut.

berichtete ich es hier, wie Sie erwähnt, Jakub: https://github.com/Azure/azure-documentdb-dotnet/issues/259

+1

Scheint mir so, als ob der Client nicht richtig getestet wird, da wir Probleme mit grundlegenden Funktionen haben –

Verwandte Themen