EventStore и RavenDB Постоянство JsonReaderException
Попытка соединить EventStore JOliver с RavenDB и наткнуться на препятствие. Я создал новую БД в Raven под названием RavenEventStore.
Следующее - моя переписка;
return Wireup.Init()
.UsingRavenPersistence("RavenEventStore")
.UsingAsynchronousDispatchScheduler()
.DispatchTo(new DelegateMessageDispatcher(DispatchCommit))
.Build();
Когда вызывается Wireup.Init(), это исключение происходит на стороне RavenDb;
Url: "/ indexes / RavenCommitByDate" Newtonsoft.Json.JsonReaderException: неожиданный символ, обнаруженный при анализе значения:. Строка 1, позиция 1. в Newtonsoft.Json.JsonTextReader.ParseValue(Char currentChar) в d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs: строка 699 в Newtonsoft.Json.JsonTextReader.ReadInternal() в d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs: строка 499 в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(средство чтения JsonReader, тип t, свойство JsonConverterConverter) в d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs: строка 1072 в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(читатель JsonReader, тип objectType) в каталоге d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs: строка 118 в Raven.Database.Extensions.HttpExtensions.ReadJsonObject[T](контекст IHttpContext) в каталоге c:\Builds\raven\Raven.Database\Extensions\HttpExtensions.cs: строка 57 в Raven.Database.Server.Responders.Index.Put(IHttpContext context, String index) в c:\Builds\raven\Raven.Database\Server\Responders\Index.cs: строка 64 в Raven.Database.Server.Responders.Index.Respond (контекст IHttpContext) в c:\Builds\raven\Raven.Database\Server\Responders\Index.cs: строка 49 в Raven.Database.Server.HttpServer.DispatchRequest (IHttpContext ctx) в каталоге c:\Builds\raven\Raven.Database\Server\HttpServer.cs: строка 477 в Raven.Database.Server.HttpServer.HandleActualRequest(IHttpContext ctx) в каталоге c:\Builds\raven\Raven.Database\Server\HttpServer.cs: строка 259.
Я также вижу исключение в журнале RavenDB;
Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: . Line 1, position 1. at Newtonsoft.Json.JsonTextReader.ParseValue(Char currentChar) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs:line 699 at Newtonsoft.Json.JsonTextReader.ReadInternal() in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\JsonTextReader.cs:line 499 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReader reader, Type t, JsonConverter propertyConverter) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 1072 at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType) in d:\Development\Releases\Json\Working\Src\Newtonsoft.Json\Serialization\JsonSerializerInternalReader.cs:line 118 at Raven.Database.Extensions.HttpExtensions.ReadJsonObject[T](IHttpContext context) in c:\Builds\raven\Raven.Database\Extensions\HttpExtensions.cs:line 57 at Raven.Database.Server.Responders.Index.Put(IHttpContext context, String index) in c:\Builds\raven\Raven.Database\Server\Responders\Index.cs:line 64 at Raven.Database.Server.Responders.Index.Respond(IHttpContext context) in c:\Builds\raven\Raven.Database\Server\Responders\Index.cs:line 49 at Raven.Database.Server.HttpServer.DispatchRequest(IHttpContext ctx) in c:\Builds\raven\Raven.Database\Server\HttpServer.cs:line 477 at Raven.Database.Server.HttpServer.HandleActualRequest(IHttpContext ctx) in c:\Builds\raven\Raven.Database\Server\HttpServer.cs:line 259
Я попытался исключить все возможности, удалив метод UsingAsynchronousDispatchScheduler(), и произвел ту же ошибку. Код, который я использую, строго из примера, расположенного здесь: https://github.com/joliver/EventStore/blob/master/doc/EventStore.Example/MainProgram.cs
Кто-нибудь испытывал это? Не удалось найти что-либо и в Google.
2 ответа
Райан, вы используете старый сервер (до 888) с новым клиентом (888 или более поздней)
Ваша проблема может быть похожа на эту: EventStore + RavenDB, неверная десериализация
Кроме того, я бы определенно рекомендовал использовать пользовательскую сборку против сборки Raven 888 (или более поздней), как предложил Орен, пока я не смогу выпустить новую версию против более новой версии Raven.