Microsoft.Azure.ServiceBus.ServiceBusException - отправка сообщения в очередь разделов служебной шины Azure - PullRequest
0 голосов
/ 14 января 2019

В моем приложении есть следующий фрагмент кода для отправки сообщения в очередь разделов служебной шины 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 голосов
/ 14 января 2019

ServiceBusException является базовым исключением из всех других исключений. Ошибки, возникающие на стороне брокера, отправляются обратно и переводятся. В этом случае это не то, что можно преобразовать в наиболее распространенные ошибки, описанные в документации . В такой ситуации, как эта, выбытие - это правильно, поскольку исключение было прерывистым. Сказав это, есть несколько вещей, чтобы рассмотреть.

  • Клиент внутри по умолчанию использует RetryPolicy, который повторяет попытку отправки. Ваши попытки должны быть применены после некоторого времени отсрочки, если это возможно.
  • Работа на стандартном уровне может потенциально страдать от более высокого уровня исключений, но вы увидите ServerBusyException.
  • Код TrackingId, предоставленный с исключением, можно использовать для открытия дела поддержки, чтобы начать расследование и лучше понять, что произошло.

Рекомендует обратиться в службу поддержки и предоставить идентификаторы отслеживания, которые вам нужны, чтобы понять, почему вы видите эту ошибку так часто.

...