2

我正在构建一个控制台应用程序,它将作为连续的 Azure WebJob 运行。我正在通过 Nuget 包 Microsoft.Azure.Jobs.ServiceBus v0.3.1-beta(预发行版)使用 Azure WebJobs SDK。我有在 Azure ServiceBus 队列上触发的静态方法。我做了一些处理,然后希望可以选择通过输出参数将响应发送到另一个队列。方法签名如下所示:

public static void TriggerOnQueue(
     [ServiceBusTrigger(QueueName)] BrokeredMessage receivedMessage,
     [ServiceBus(QueueResponseName)] out BrokeredMessage responseMessage)
{
      ...
}

我最初的想法是将 responseMessage 设置为 null。但是,当我这样做时,控制台窗口中会出现一个错误。它不会停止执行(所以它在技术上做了我想要它做的事情),但我宁愿不把一些抛出错误的东西推到生产中。是否有任何非 hackish 方法可以在响应消息中设置一个不会引发错误但不会将消息提交到响应队列的值?

如果没有,是否还有我可以使用的另一种模式?我更喜欢使用 WebJobs SDK 的管道功能,而不是手动创建输出队列。我可能可以将需要响应的请求提交到一个单独的队列并有 2 个单独的触发器,但是我有少量这样做,我宁愿保持简单和在一起。

想法?

4

1 回答 1

1

这种为 out 参数指定 null 的模式适用于 Azure 队列,但它会引发服务总线队列异常。这看起来像 SDK 中的错误。我会打开一个错误让我们修复它。感谢您报告此问题

于 2014-08-08T16:23:27.347 回答