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

Is it possible to configure an NServiceBus endpoint (on Azure transport) to accept a simple string as input?

我们有一个 NServiceBus 端点来监视 Azure 服务总线队列(使用 Azure 作为传输)。但并非所有向队列发送消息的客户端都是基于 .NET 的。

能否将 NServiceBus 端点配置为接受简单字符串作为输入?

我尝试使用实现 IMutateIncomingMessages 的 class 拦截消息,但此时从 Azure 传输的反序列化已经失败。

我可以检查在实现 IMutateIncomingTransportMessages 的 class 中传入的消息,但我不确定这是不是正确的地方。

配置 NServiceBus 以处理以下列格式发布的消息的最佳方式是什么(请记住,这也可以通过 Java 或节点 SDK,或通过 Azure REST 端点):

 var brokered = new BrokeredMessage("This plain string represents the data.");
 queueClient.Send(brokered);

此消息的反序列化将失败,因为它包含一个字符串,而不是 Azure 传输反序列化程序所期望的字节数组。

PS:我知道可以将端点公开为 WCF 服务,但目前我们只有 NServiceBus.Host 个从队列中拉取的进程,WCF 解决方案感觉不像对我来说是正确的解决方案。

正如之前在 Twitter 上提到的,但为了完整起见,将其包含在此处...

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

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