Json Ошибки в клиенте Raven 3.5 - PullRequest
1 голос
/ 18 октября 2019

Периодически мы получаем следующую ошибку при сохранении в базу данных Raven. Клиент и база данных v3.5. Решение до сих пор состояло в том, чтобы перезапустить серверы, и после этого все, кажется, успокаивается. Пользователь может перейти на другой сервер и вернуться на сайт и получить то, что было сохранено. Однако, когда мы видим такую ​​ошибку на сервере, сервер начинает сообщать о сотнях из них. Мы не можем воспроизвести это в QA. Поэтому я склоняюсь к нагрузке, иначе наши сессии ворона не закрываются должным образом.

Вызов Raven OpenSessionAsync () как точки создания класса

IAsyncDocumentSession

public async Task<bool> SaveChangesAsync()
{
using (_session)
{
await _session.SaveChangesAsync();
}

return true;
}

Это область в нашем коде, которая запускает ошибку при сохранении, если мытакже делать что-то еще?

Сообщение: Token PropertyName в состоянии Property приведет к недопустимому объекту JSON. Дорожка ''. Raven.Imports.Newtonsoft.Json.JsonWriter.AutoComplete (JsonToken tokenBeingWritten) в C: \ Builds \ RavenDB-Stable-3.5 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ JsonWriter.cs: 779L Raven.Json. RavenJTokenWriter.WritePropertyName (имя строки) в C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Abstractions \ Json \ Linq \ RavenJTokenWriter.cs: 51 Raven.Imports.Newtonsoft.Json.Serialization.JsonSerializerInternalOritзначение, контракт JsonObjectContract, член JsonProperty, JsonContainerContract collectionContract, JsonProperty containerProperty) в C: \ Builds \ RavenDB-Stable-3.5 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ Сериализация \ JsonSerializerInternalWorts.:. .Json.Serialization.JsonSerializerInternalWriter.Serialize (JsonWriter jsonWriter, Значение объекта, Тип objectType) в C: \ Builds \ RavenDB-Stable-3.5 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ Сериализация \ JsonSerializerInternalWrit. .Imports.Newtonsoft.Json.JsonSerializer.SerializeInternal (JsonWriter jsonWriter, значение объекта, тип objectType) в C: \ Builds \ RavenDB-Stable-3.5 \ Imports \ Newtonsoft.Json \ Src \ Newtonsoft.Json \ JsonSerializer.cs: 949 Raven.Json.Linq.RavenJToken. FromObjectInternal (объект o, JsonSerializer jsonSerializer) в C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Abstractions \ Json \ Linq \ RavenJToken.cs: 91 Raven.Json.Linq.RavenJObject.FromObject (объект o, JsonSerializer в j)C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Abstractions \ Json \ Linq \ RavenJObject.cs: 174 Raven.Client.Document.EntityToJson.GetObjectAsJson (объект) в C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Client.Lightweight \ Document \ EntityToJson.cs: 72 Raven.Client.Document.EntityToJson.ConvertEntityToJson (ключ строки, сущность объекта, метаданные RavenJObject) в C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Client.Lightweight Document\ EntityToJson.cs: 44 Raven.Client.Document.InMemoryDocumentSessionOperations.EntityChanged (объектная сущность, DocumentMetadata documentMetadata, IDictionary 2 changes) in C:\Builds\RavenDB-Stable-3.5\Raven.Client.Lightweight\Document\InMemoryDocumentSessionOperations.cs:1218 Raven.Client.Document.InMemoryDocumentSessionOperations.<PrepareForEntitiesPuts>b__110_0(KeyValuePair 2 пара) в C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Client.Lightweight \ Document \ InMemoryDocumentSessionOperations.cs: 1025 System.Linq.Enumerable + WhereEnumerableIterator 1.MoveNext():55 System.Linq.Buffer 1..ctor (IEnumerable 1 source):114 System.Linq.Enumerable.ToArray[TSource](IEnumerable 1 источник): 20

Raven. в C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Client.Lightweight \ Document \ InMemoryDocumentSessionOperations.cs: 986 Raven.Client.Document.Async.AsyncDocumentSession + d__73.MoveNext () в C: \ Builds \ RavenDB-Stable-3.5 \ Raven.Client.Lightweight \ Document \ Async \ AsyncDocumentSession.cs: 928 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (): 12 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebug6

ApplicantCenter.Services.ApplicationService + d__9.MoveNext () в d: \ a \ 1 \ s \ Project \ Services \ ApplicationService_Helpers.cs: 207 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (): 12 System.Runtime. CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача): 46

ApplicantCenter.Controllers.ApplicationController + d__10.MoveNext () в d: \ a \ 1 \ s \ Project \ Controllers \ ApplicationController.untime: 117:.ExceptionServices.ExceptionDispatchInfo.Throw (): 12 System.Runtime.CompilerServices.TaskAwaiter. > c__DisplayClass8_0.b__1 (IAsyncResult asyncResult) System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod (IAsyncResult asyncResult) System.Web.Myn.Async.Wync.Wync.dlltrollerActionInvoker + AsyncInvocationWithFilters + <> c__DisplayClass11_1.b__2 (): 134 System.Web.Mvc.Async.AsyncControllerActionInvoker + AsyncInvocationWithFilters + <> c__DisplayClass11_1.b__2 (): 134 System.Web.Mvc.Async.AsyncControllerActionInvoker + AsyncInvocationWithFilters + <> c__DisplayClass11_1.b__2 (): 134 System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters (IAsyncResult AsyncResult) System.Web.Mvc.Async.AsyncControllerActionInvoker + <> c__DisplayClass3_6.b__3 () System.Web.Mvc.Async.AsyncControllerActionInvoker + <> c__DisplayClass3_1.b__5 (IAsyncResult AsyncResult)

1 Ответ

0 голосов
/ 22 октября 2019

Проблема в том, что вы избавляетесь от сеанса, который может использоваться другими. Вы помещаете глобальную _session в блок using, ресурсы _session будут удалены после окончания использования блока, а другие части кода, использующие ту же глобальную _session, станут недействительными.

...