Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于会话的Azure WebJob ServiceBusTrigger_C#_Azureservicebus_Azure Webjobs_Azure Servicebus Queues_Azure Webjobssdk - Fatal编程技术网

C# 用于会话的Azure WebJob ServiceBusTrigger

C# 用于会话的Azure WebJob ServiceBusTrigger,c#,azureservicebus,azure-webjobs,azure-servicebus-queues,azure-webjobssdk,C#,Azureservicebus,Azure Webjobs,Azure Servicebus Queues,Azure Webjobssdk,我知道可以从服务总线队列接收消息,如: public static void ProcessQueueMessage([ServiceBusTrigger("inputqueue")] string message, TextWriter logger) 但是,是否也有一种通过触发器属性接收会话的方法?像ServiceBusSessionTrigger这样的东西 通常,人们会接受这样的会议: var session = queueClient.AcceptMessageSession();

我知道可以从服务总线队列接收消息,如:

public static void ProcessQueueMessage([ServiceBusTrigger("inputqueue")] string message, TextWriter logger)
但是,是否也有一种通过触发器属性接收会话的方法?像ServiceBusSessionTrigger这样的东西

通常,人们会接受这样的会议:

var session = queueClient.AcceptMessageSession();
但是我更喜欢WebJob SDK处理如何一次处理多个会话

编辑: 似乎当前不支持此操作:


编辑2:它们似乎是

当前您无法通过触发器属性接收会话,但存在一个错误。如果这是许多人认为有用的东西,那么将其烘焙到核心ServiceBus程序集中是有意义的。

此nuget Microsoft.Azure.WebJobs.Extensions.ServiceBus在Azure函数的3.1.0-beta3版本支持会话中。安装此nuget时, 您将能够像下面的代码一样使用它
[ServiceBusTrigger(“testsessionqueue”,Connection=“serviceBusConnectionString”,IsSessionEnabled=true)]

在那里你可以找到nuget: 这是github的一个问题:


请记住,它仍然是beta版

Hi@Zenuka,我也有这个问题。我可以问一下你最后是如何解决的吗?@JasonSteele,我不知道我用了哪个博客/教程/视频来实现它,比如'var session=queueClient.AcceptMessageSession()',但我想你可以用这个作为指导:那么我们可以得到属于同一个会话的所有消息吗?怎么做?这没用。您能否将具有特定会话的所有邮件转发到队列?您需要将sessionId作为属性提供给邮件,并确保您的队列或主题支持session,然后Azure service bus将使用会话功能。支持会话的Azure函数只是一个端点,因此它只能以FIFO顺序捕获消息。有关会话的更多详细信息,请参见msdn中的一句话:“在会话感知队列或订阅上,当至少有一条消息具有会话的SessionId时,会话就开始存在。一旦会话存在,就没有定义会话过期或消失的时间或API。从理论上讲,一个会话可以在今天收到一条消息,一年后的下一条消息,如果SessionId匹配,那么从服务总线的角度来看,会话是相同的。“请注意,这个功能现在已经发布,不再是beta版。您如何迭代会话中的所有消息?