繁体   English   中英

向我的Azure服务总线队列添加消息不会返回任何值

[英]Adding a message to my Azure service bus queue doesn't return any value

我正在向Azure服务总线队列中添加一条消息,并返回其Guid保存在数据库中,但是由于某种原因,我要么修改了某些内容,要么一开始它始终无法正常工作。 问题-我可以在多个队列中但在同一总线上有多个具有相同ID的消息ID吗? 我在同一条总线上有5个队列,每个队列可能有一条消息,其消息ID为ex。 100

var sequenceToCancel =等待queueClient.ScheduleMessageAsync(message,endTime);

不返回任何东西!

而且整个堆栈跟踪还只是在没有完成代码堆栈中上面任何内容的情况下便冒出来!

该消息被放入服务总线队列中,但该方法未返回! 我尝试绕过它,但是它什么也没做,并且控制器中没有异常。 整个堆栈一直到控制器都没问题! 因此,控制器中此方法运行后没有任何代码。

是什么原因造成的?如何检查是否有任何错误?

这是完整的方法。

 public async Task < long > CreatePostEventEmailMessage(int eventId, DateTime eventDateTime, YogaSpaceDuration duration, DateTime utcEventDateTime) { string serviceBusConnectionString = System.Configuration.ConfigurationManager.AppSettings["ServiceBusConnectionString"]; string queueName = System.Configuration.ConfigurationManager.AppSettings["PostEventEmailQueueName"]; var queueClient = QueueClient.CreateFromConnectionString(serviceBusConnectionString, queueName); int length = Convert.ToInt32(EnumHelper.GetDisplayName(duration).Split(' ')[0]); // end of class var endTime = DateTime.SpecifyKind(utcEventDateTime.AddMinutes(length).AddMinutes(1), DateTimeKind.Utc); BrokeredMessage message = new BrokeredMessage(eventId.ToString()); message.MessageId = eventId.ToString(); message.ScheduledEnqueueTimeUtc = endTime; var sequenceToCancel = await queueClient.ScheduleMessageAsync(message, new DateTimeOffset(endTime)); await queueClient.CloseAsync(); // this line never gets hit return sequenceToCancel; // this line never gets hit } 

仅供参考-有趣的是,在此方法上方,我还有另一种方法可以在另一个队列上执行相同的操作,并且效果很好! 因此,我正在寻找名称是否拼写错误或配置不正确的问题,但令人担忧的是,如果我是这样,我会认为我会看到异常或消息不会放在队列中?

是的,可以在不同队列中为每个消息使用相同的“ MessageId”。

queueClient.ScheduleMessageAsync() 

返回发送到队列的消息的“ SequenceNumber”。

处理异步调用中可能存在问题。 检查父方法是否为异步方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM