我们有一个NServiceBus端点,用于监控Azure Service Bus Queue(使用Azure作为传输)。但并非所有向队列发送消息的客户端都是基于.NET的。
NServiceBus端点是否可以配置为接受一个简单的字符串作为输入?
我尝试使用实现IMutateIncomingMessages的类拦截消息,但此时Azure传输的反序列化已经失败。
我可以检查实现IMutateIncomingTransportMessages的类中的消息,但我不确定这是否是正确的位置。
配置NServiceBus以处理以下列格式发布的消息的最佳方法是什么(请记住,这也可以通过Java或Node SDK或Azure REST端点来实现):
var brokered = new BrokeredMessage("This plain string represents the data.");
queueClient.Send(brokered);
此消息的反序列化将失败,因为它包含一个字符串,而不是Azure传输反序列化程序所期望的字节数组。
PS:我知道可以将端点公开为WCF服务,但是目前我们只有从队列中获取的NServiceBus.Host进程,并且WCF解决方案对我来说不是正确的解决方案。
答案 0 :(得分:2)
正如之前在Twitter上所提到的那样,但只是为了完整性而将其包括在内......
如果要本机集成,则必须修改nsb管道的各个部分以适应您的环境。
有关此类集成的示例,请参阅https://github.com/yvesgoeleven/NServiceBus.AsbNativeIntegration。