2015-07-20 42 views
2

我正在嘗試NEventStore。我開始了示例項目,並創建了一些事件並保存到數據庫。但是在數據庫中,我只能看到加密的數據,而我無法確定存儲事件的正確性。我試圖關閉有關加密的所有設置,但沒有任何更改。NEventStore - 解密和反序列化stared事件數據

我的初始化代碼:

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(); 

我試圖通過cast([Payload] as varchar(max)鑄造VARBINARY爲VARCHAR做的SQL,但我沒有收到乾淨的數據也是如此。

如何以可讀形式讀取NEventStore數據?

+0

我以爲有效載荷是以二進制格式保存的,不管序列化格式如何? –

+0

在關閉壓縮/加密並重新創建一些事件數據後,您是否嘗試截斷表格?當我從一個空的事件存儲開始時,我可以使用cast作爲varchar技巧,並讀取標頭/有效載荷就好了。它們顯然不是以嚴格的json格式存儲的,因爲它們前綴有一些奇怪的非ASCII字符,但對於「眼球驗證」來說已經足夠了。 – EverPresent

回答

3

你可以施放有效載荷列XML:

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

即使有效載荷實際上是JSON,我得到正確的結果,例如

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

顯然,這不適用於壓縮或加密的數據。