是否可以配置NServiceBus端点(在Azure传输上)接受一个简单的字符串作为输入?

时间:2015-06-10 12:48:33

标签: azure nservicebus azureservicebus nservicebus5

我们有一个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解决方案对我来说不是正确的解决方案。

1 个答案:

答案 0 :(得分:2)

正如之前在Twitter上所提到的那样,但只是为了完整性而将其包括在内......

如果要本机集成,则必须修改nsb管道的各个部分以适应您的环境。

有关此类集成的示例,请参阅https://github.com/yvesgoeleven/NServiceBus.AsbNativeIntegration