0

我们有一个 NServiceBus 端点来监控 Azure 服务总线队列(使用 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 解决方案对我来说不是正确的解决方案。

4

1 回答 1

2

正如之前在推特上提到的那样,为了完整起见,只是将其包含在此处...

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

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

于 2015-06-11T17:12:47.257 回答