Служебная шина Azure: строка подключения, используемая для клиента служебной шины, должна указывать узел пространства имен служебной шины и либо общий ключ доступа,

Почему моя строка подключения RootManageSharedAccessKey недействительна?

Код:

При выполнении приведенного ниже кода я получаю сообщение об ошибке о неверной строке подключения:

serviceBusClient <- new ServiceBusClient(connectionString)

Ошибка:

System.NotImplementedException: «Метод или операция не реализовано.

System.ArgumentException: 'Строка подключения, используемая для службы Клиент шины должен указать узел пространства имен служебной шины и либо Общий ключ доступа (имя и значение) ИЛИ общий доступ Подпись должна быть действительной. Имя параметра: connectionString'

Строка подключения:

"Endpoint=sb://myNameSpace.servicebus.windows.net/;TransportType=AmqpWebSockets;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=******************************************* = "

Я также попытался удалить свойство TransportType из строки подключения:

"Endpoint=sb://myNameSpace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=******************************************* = "

Строка подключения была получена из политики общего доступа моего ресурса служебной шины:

Контекст:

Xamarin.Forms (Android)

Azure.Messaging.ServiceBus

NuGet-пакеты:

Azure.Messaging.ServiceBus (7.11.1) Xamarin.Forms (5.0.0.2545)

Оба приведенных выше примера строки подключения правильно сформированы и допустимы для использования. Я могу использовать их для создания ServiceBusClient и анализа с помощью ServiceBusConnectionStringProperties как в C#, так и в F#. Маркер «TransportType» недействителен, но молча игнорируется.

Jesse Squire 05.01.2023 22:40

Интересно, проблема в том, что клиент является мобильным? В моем случае я пытаюсь запустить код на Xmarin.Android.

Scott Nimrod 05.01.2023 23:44

Синтаксический анализ строки подключения представляет собой простое разрезание строки. Не исключаю, но маловероятно. Завтра я попытаюсь воспроизвести проект Xamarin. Что мне интересно выше, так это NotImplementedException, который находится в ваших деталях ошибки выше. Похоже, это может быть связано с платформой, хотя, вероятно, не с парсером. У вас случайно нет трассировки стека для этого, которым вы можете поделиться?

Jesse Squire 06.01.2023 00:22

Если вам интересно узнать подробности, синтаксический анализ строки подключения происходит здесь: github.com/Azure/azure-sdk-for-net/blob/main/sdk/servicebus/‌​…

Jesse Squire 06.01.2023 00:23

@JesseSquire — в System.Diagnostics.Tracing.EventSource.GetSources () [0x00000] в /Users/builder/jenkins/workspace/archive-mono/2020-02/androi‌​d/release/mcs/class/‌​corlib/ System.Diagno‌​stics.Tracing/EventS‌​ource.cs:318 в Azure.Core.Diagnostics.AzureEventSource.DeduplicateName (System.String eventSourceName) [0x00010] в <287460e758c24a47ba03a248ab1a62d9>:0

Scott Nimrod 06.01.2023 00:26

Спасибо. Можете ли вы также подтвердить версии пакетов для меня? Ошибка источника события выглядит очень знакомой и похоже на ту, что была исправлена ​​год назад. (я вижу, вы участвовали в обсуждении) github.com/Azure/azure-sdk-for-net/issues/24055

Jesse Squire 06.01.2023 16:02

@JesseSquire — Azure.Messaging.ServiceBus 7.11.1, Xamarin.Forms 5.0.0.2545

Scott Nimrod 06.01.2023 17:07

Давайте продолжим обсуждение в чате.

Jesse Squire 06.01.2023 21:35
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
8
155
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для тех, кому это может быть интересно, основной причиной этого оказалось то, что строка подключения, переданная в ServiceBusClient, была закодирована в формате JSON, что привело к внедрению двух литералов кавычек. В результате отсутствовал токен Endpoint= (был "Endpoint=), из-за чего клиент не мог определить, к чему подключиться.

Другие вопросы по теме

Метка недоступна в Azure.Messaging.ServiceBus.ServiceBus.ServiceBusMessage
Ошибка HTTP 401 при попытке отправить сообщение из фабрики данных Azure в служебную шину
Общественный транспорт прекращает потребление после возникновения исключения
Функция Azure, запущенная темой служебной шины, не работает
Сообщение расписания процесса служебной шины Azure до запланированного времени
Функция Azure выдает «Ошибка обработки сообщения (Action = Complete)» после вызова deadletrasync с автозаполнением, не установленным как False
Отправка сообщений из темы служебной шины в другую в виде пакетов с использованием IAsyncCollector в функциях Azure. Повторные попытки сохраняются даже после получения сообщения
Как создать экземпляр пространства имен служебной шины Azure для каждого разработчика с помощью Terraform и сохранить его в состоянии
Служебная шина Azure не все сообщения получены в размещенном веб-приложении службы
EventHubClient.Send: сообщение не может быть отправлено, так как оно либо получено по ссылке, либо уже отправлено по ссылке