NEventStore — расшифровывать и десериализовывать данные о старых событиях

Я пытаюсь использовать NEventStore. Я запустил пример проекта, создал несколько событий и сохранил их в базе данных. Но в базе данных я вижу только зашифрованные данные и не могу определить правильность сохраненных событий. Я попытался отключить все настройки шифрования, но ничего не изменилось.

Мой код инициализации:

var init = Wireup.Init()
                         .LogToOutputWindow()
                         .UsingInMemoryPersistence()
                         .UsingSqlPersistence("EventStore") // Connection string is in app.config
                         .WithDialect(new MsSqlDialect())
                         .EnlistInAmbientTransaction() // two-phase commit
                         .InitializeStorageEngine()
                         .TrackPerformanceInstance("example")
                         .UsingJsonSerialization()
                         //.Compress()
                         //.EncryptWith(EncryptionKey)
                         .HookIntoPipelineUsing(new[] {new AuthorizationPipelineHook()})
                         .UsingSynchronousDispatchScheduler()
                         .DispatchTo(new DelegateMessageDispatcher(DispatchCommit))
                         .Build();

Я попытался сделать это в SQL с преобразованием varbinary в varchar с помощью cast([Payload] as varchar(max), но также не получил чистых данных.

Как я могу прочитать данные NEventStore в удобочитаемой форме, пожалуйста?


person Jozef Cechovsky    schedule 20.07.2015    source источник
comment
Я думал, что полезная нагрузка была сохранена в двоичном формате независимо от формата сериализации?   -  person Thomas Eyde    schedule 09.08.2015
comment
Вы пытались усечь свою таблицу после того, как отключили сжатие/шифрование и воссоздали некоторые данные событий? Когда я начинаю с пустого хранилища событий, я могу использовать приведение как трюк с varchar и просто читать заголовки/полезную нагрузку. Очевидно, что они не хранятся в строгом формате json, потому что они имеют префикс с несколькими нечетными символами, отличными от ascii, но этого достаточно для проверки на глаз.   -  person EverPresent    schedule 27.08.2015


Ответы (1)


Вы можете преобразовать столбец полезной нагрузки в XML:

SELECT TOP 10 CAST(Payload AS XML), *
  FROM [dbo].[Commits]

Несмотря на то, что полезная нагрузка на самом деле JSON, я получаю правильный результат, например.

[{"Headers":{},"Body":"Test"}]

Очевидно, что это не работает для сжатых или зашифрованных данных.

person Mikhail Shilkov    schedule 23.12.2015