Microsoft.Azure.ServiceBus.ServiceBusException-向Azure服务总线主题队列发送消息

时间:2019-01-14 02:57:46

标签: azure-service-fabric azure-servicebus-queues azure-servicebus-topics

我的应用程序中包含以下代码片段,以将消息发送到Azure服务总线主题队列。在发送消息期间,我随机得到通用的ServiceBusException。

     var serialized = JsonConvert.SerializeObject(message);
     var _client = new TopicClient(connectionString, $"{queuePrefix}{queueName}");

        var m = new Message(Encoding.ASCII.GetBytes(serialized))
        {
            MessageId = messageId,
            ContentType = "application/json"
        };

        await RetryHelper.WithRetries(async () =>
        {
            await _client.SendAsync(m);
        }, new Common.RetryPolicy(3, TimeSpan.Zero, typeof(ServiceBusTimeoutException)));

这是我的异常消息,

  

服务无法处理请求;请重试该操作。有关异常类型和适当的异常处理的更多信息,请参阅http://go.microsoft.com/fwlink/?LinkId=761101 TrackingId:24e3ca8e-a74f-4f1b-a0e6-acf4e98a0bdc_G9,SystemTracker:client-link78653,时间戳:2019-01-06T01:35:50      

Microsoft.Azure.ServiceBus.ServiceBusException

由于该异常不是本页面https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-exceptions所列出的特定内容,因此我很难理解该异常的根本原因并采取纠正措施。

我希望您有任何进一步调查的信息。

1 个答案:

答案 0 :(得分:2)

ServiceBusException是所有其他例外的基本例外。在代理端发生的错误将被发送回并进行翻译。在这种情况下,它不能转换为documentation中描述的最常见错误。在这种情况下,重新绑定是正确的做法,因为例外情况是间歇性的。话虽如此,没有什么要考虑的。

  • 默认情况下,内部客户端使用RetryPolicy来重试发送操作。如果可能,您的重试应该在一些退避时间之后进行。
  • 在标准层上运行 可能会遭受更高的例外率,但是您会看到ServerBusyException
  • 该异常提供的TrackingId代码可用于打开支持案例以开始调查并更好地了解发生了什么。

建议您与支持人员联系并提供跟踪ID,以帮助您了解为什么经常看到此错误。