Hey guys,
Following up on my Response/Reply architecture, I'm getting a weird error when trying to implement a caching and repository strategy in one of the consumers. The Consumers normally pick up the requests from RMQ and trigger the Consume method which creates the Task for the reply. This works fine for me, but the moment I call the repository: eg. repoFactory.User.GetAll(), I get the following exception from MT3:
ERROR 2015-05-28 17:21:40,503 [20] MassTransit.RabbitMqTransport.RabbitMqSendTransport (null) - Send Fault: rabbitmq://rabbitserver:5672/Quantum/bus-App.Client.Terminal.vshost-hostname-08d2677982696
4d3a0481c9a571e0000?durable=false&autodelete=true&exclusive=true&prefetch=16
MassTransit.ConventionException: Whoa, slow down buddy. The message 'MassTransit.Fault<ConsumeContext<App.Gateway.Contract.Request.DataRequest>>' must be marked with the 'Serializable' attribute!
at MassTransit.Serialization.BinaryMessageSerializer.MassTransit.IMessageSerializer.Serialize[T](Stream stream, SendContext`1 context)
at MassTransit.RabbitMqTransport.Contexts.RabbitMqSendContextImpl`1.get_Body()
at MassTransit.RabbitMqTransport.RabbitMqSendTransport.<>c__DisplayClassf`1.<<SendMessage>b__b>d__17.MoveNext()
The problem is that the DataRequest message is actually marked as Serializable; this is why it works in the first place.
Has anyone have experience with SharpRepository and MT3?
If so have you seen this issue, and if so did you figure out what this is?
Chris, Dru if you have any thoughts it would be great.
Thanks,
Christos