2010-12-13 27 views
0

J'essaye de créer un service de journal d'audit en utilisant nservicebus. Puisque je dois faire l'application sans recompiler j'ai trouvé (http://tech.dir.groups.yahoo.com/group/nservicebus/message/9416) il est bon d'accrocher l'événement OnTransportMessageReceived. Aussi j'ai besoin de stocker le corps de message du message entrant également. Pourriez-vous s'il vous plaît laissez-moi savoir comment puis-je réaliser? Je essayé ce qui suit maintenant créer un gestionnaire qui gère iMessageService d'audit de Nservicebus

public class AuditLogMessagehandler : IHandleMessages<IMessage> 
    { 
     public IBus Bus { get; set; } 

     public ITransport Transport { get; set; } 

     public AuditLogMessagehandler() 
     {   
     }  

     public void Handle(IMessage message) 
     { 
      string returnAddress = Bus.CurrentMessageContext.ReturnAddress; 
      string id = Bus.CurrentMessageContext.Id; 

      string messageType = message.GetType().Name; 
      IMessage[] messages = new IMessage[1]; 
      messages[0] = message; 
      MessageSerializer ser = new MessageSerializer(); 

      Stream memoryStream = new MemoryStream(); 
      ser.Serialize(messages, memoryStream); 
      memoryStream.Flush(); 
      memoryStream.Close(); 
     } 
    } 

Il a fallu la dll à copier dans le bac folder.But je ne reçois pas le message bdoy threre, aussi s'il vous plaît laissez-moi savoir à quel moment ou comment puis-je accrocher à OnTransportMessageReceived

Merci à l'avance, Ajai

Répondre

2

NServicebus a l'audit de la boîte. Voir le lien suivant:

http://docs.particular.net/nservicebus/operations/auditing

Cela prendra une copie du message et le déplacer vers une Q. vérification De là, vous pouvez lire le q d'audit et copiez le messsage de déposer, déplacer dans un DB. tout ce que vous voulez.

Est-ce que cela a du sens?

Dave

+0

http://tech.dir.groups.yahoo.com/group/nservicebus/message/9416 pouvez-vous s'il vous plaît consulter le lien ci-dessus – Ajai