2015-07-20 1 views
2

J'essaie NEventStore. J'ai commencé un exemple de projet et j'ai créé quelques événements et enregistré dans la base de données. Mais dans la base de données, je ne vois que des données cryptées et je ne peux pas identifier l'exactitude de mes événements stockés. J'ai essayé de désactiver tous les paramètres de cryptage, mais rien n'a changé.NEventStore - décrypter et désérialiser les données d'événements observés

Mon code init:

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

J'ai essayé de le faire dans SQL avec Incantation varbinary varchar par cast([Payload] as varchar(max) mais je ne reçoivent ainsi des données propres. Comment puis-je lire les données de NEventStore sous une forme lisible, s'il vous plaît?

+0

Je pensais que la charge utile était enregistrée dans un format binaire quel que soit le format de sérialisation? –

+0

Avez-vous essayé de tronquer votre table après avoir désactivé la compression/cryptage et recréé certaines données d'événement? Lorsque je commence avec un magasin d'événements vide, je peux utiliser la distribution comme un truc de type varchar et lire les en-têtes/données utiles. Ils ne sont évidemment pas stockés au format json strict car ils sont précédés de quelques caractères non-ascii, mais ils sont assez bons pour la "validation du globe oculaire". – EverPresent

Répondre

3

Vous pouvez lancer la colonne Payload XML:

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

Même si la charge utile est en fait JSON, je reçois le résultat correct, par exemple

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

De toute évidence, cela ne fonctionne pas pour les données compressées ou cryptées.