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

Microsoft.Azure.ServiceBus.ServiceBusException - Sending a message to the Azure service bus topic queue

我的应用程序中有以下代码片段,用于向 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)));

这是我的异常消息,

The service was unable to process the request; please retry the operation. For more information on exception types and proper exception handling, please refer to http://go.microsoft.com/fwlink/?LinkId=761101 TrackingId:24e3ca8e-a74f-4f1b-a0e6-acf4e98a0bdc_G9, SystemTracker:client-link78653, Timestamp:2019-01-06T01:35:50

Microsoft.Azure.ServiceBus.ServiceBusException

由于异常并不像本页所列的那样具体 - https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-exceptions,我发现很难理解异常的根本原因并采取纠正措施。

如果有任何信息可以进一步调查,我将不胜感激。

ServiceBusException 是所有其他异常的基本异常。代理方发生的错误被发回并翻译。在这种情况下,它不能转换为 documentation 中描述的最常见错误。在这种情况下,重新绑定是正确的做法,因为异常是间歇性的。话虽如此,要考虑的事情却很少。

  • 客户端默认使用 RetryPolicy 重试发送操作。如果可能的话,您应该在一段时间后重试。
  • 运行 在标准层 可能会遭受更高的异常率,但您会看到 ServerBusyException.
  • 随异常一起提供的 TrackingId 代码可用于打开支持案例以开始调查并更好地了解发生的情况。

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