C# 有没有办法使Azure WebJobs ServiceBus out参数可选?
我正在构建一个控制台应用程序,它将作为一个连续的Azure WebJob运行。我通过Nuget软件包Microsoft.Azure.Jobs.ServiceBus v0.3.1-beta(预发布)使用Azure WebJobs SDK。我有一个在Azure ServiceBus队列上触发的静态方法。我进行了一些处理,然后希望使用选项通过输出参数向另一个队列发送响应。方法签名如下所示:C# 有没有办法使Azure WebJobs ServiceBus out参数可选?,c#,azure,azureservicebus,azure-webjobs,azure-webjobssdk,C#,Azure,Azureservicebus,Azure Webjobs,Azure Webjobssdk,我正在构建一个控制台应用程序,它将作为一个连续的Azure WebJob运行。我通过Nuget软件包Microsoft.Azure.Jobs.ServiceBus v0.3.1-beta(预发布)使用Azure WebJobs SDK。我有一个在Azure ServiceBus队列上触发的静态方法。我进行了一些处理,然后希望使用选项通过输出参数向另一个队列发送响应。方法签名如下所示: public static void TriggerOnQueue( [ServiceBusTrigg
public static void TriggerOnQueue(
[ServiceBusTrigger(QueueName)] BrokeredMessage receivedMessage,
[ServiceBus(QueueResponseName)] out BrokeredMessage responseMessage)
{
...
}
我最初的想法是将responseMessage设置为null。但是,执行此操作时,控制台窗口中会出现一个错误。它不会停止执行(所以从技术上讲,它会做我希望它做的事情),但我不希望将抛出错误的东西推到生产环境中。是否有任何非黑客方式可以在响应消息中设置一个不会抛出错误但不会将消息提交到响应队列的值
如果没有,我是否还缺少其他可以使用的模式?我更喜欢使用WebJobs SDK的管道功能,而不是手动创建输出队列。我可能会将需要响应的请求提交到一个单独的队列中,并且有两个单独的触发器,但是由于我有少量的触发器,我宁愿保持它的简单性和一致性
想法?这种为out参数指定null的模式适用于Azure队列,但它会为服务总线队列引发异常。这看起来像SDK中的bug。我会为我们打开一个bug来修复它。感谢您报道本期谢谢!我将期待修复:)我想知道这是否已修复。所有这些自动声明式基础设施都让我感到紧张。您必须搜索文档以了解其工作原理(如果您可以找到任何文档)。然后,当您认为您理解了它应该如何工作时,您开始开发,类似的事情发生了,它的行为与它应该的不一样,您最终编写了基础架构承诺您不必首先编写的代码!如果你足够幸运地让它工作,你必须祈祷当他们更新SDK时没有引入bug!这个问题现在已经解决了。