Не удалось подключиться к очереди шины службы Azure - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь прослушать очередь службы Azure, но получаю исключение при инициализации подключения к очереди.Я пытался найти выход, но с меньшим успехом.Обратите внимание, что я использую .NETCore 2.1.Вот как я инициализирую соединение:

// Initialize the connection to Service Bus Queue
_queueClient = QueueClient.CreateFromConnectionString(_interswitchQueueConnectionString, _interswitchQueueName, ReceiveMode.ReceiveAndDelete);

И вот это исключение я получаю:

System.TypeInitializationException: инициализатор типа для Microsoft.ServiceBus.Messaging.Constantsбросил исключение.---> System.TypeLoadException: не удалось загрузить тип 'System.UriTemplate' из сборки 'System.ServiceModel, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089'.в Microsoft.ServiceBus.Messaging.Constants..cctor () --- Конец трассировки стека внутренних исключений --- в Microsoft.ServiceBus.ServiceBusConnectionStringBuilder..ctor () в Microsoft.ServiceBus.Messaging.QueueClient.CreateFromConnectionString (String connectionString,Строковый путь, режим ReceiveMode)

Та же инициализация отлично работает при использовании .net framework.Как я могу сделать это в .NetCore?Пожалуйста, помогите Спасибо заранее

Ответы [ 3 ]

0 голосов
/ 05 октября 2018

Вы также можете использовать MessagingFactory

MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);

            queueClient = await factory.CreateMessageReceiverAsync(_entityPath, ReceiveMode.ReceiveAndDelete);
0 голосов
/ 05 октября 2018

С .NET Core вы должны использовать новый клиент .NET Standard Azure Service Bus, Microsoft.Azure.ServiceBus .Старый клиент WindowsAzure.ServiceBus является устаревшим клиентом, работает только с Full Framework и не рекомендуется двигаться вперед.

Новый клиент не имеет концепциифабрики.Вы отвечаете за создание клиентов сущностей (QueueClient, SubscriptionClient и TopicClient) и управление соединениями.

0 голосов
/ 05 октября 2018

В Dotnet Core 2.1 вы можете попробовать это.

var queueClient = new QueueClient(connectionString, entityPath, ReceiveMode.ReceiveAndDelete);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...