Подключение к сервисной шине всегда заканчивается - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть функция, которая запускается ServiceBusTrigger, и я тестировал ее с помощью Service Bus Explorer, чтобы загрузить сообщение и запустить мою функцию. Это работало нормально, но сейчас я пытаюсь автоматизировать этот процесс, но код, который я пишу для загрузки сообщения в SB, истекает.

Класс конечной точки:

public class ServiceBusEndPoint
    {
        private readonly string _serviceBus;

        public ServiceBusEndPoint()
        {
            _serviceBus = TestContext.Parameters["serviceBus"];
            TestContext.Out.WriteLine($"Service bus {_serviceBus}");
        }

        public QueueClient GetQueueClient(string queueName)
        {
            return new QueueClient(_serviceBus, queueName);
        }
    }

И использовать его какэто:

var sbClient = _sbEndPoint.GetQueueClient(TestContext.Parameters["sbQueue"]);
var message = new Message(Encoding.UTF8.GetBytes(validTestFile));
await sbClient.SendAsync(message);

и это всегда время ожидания:

System.Net.Sockets.SocketException : A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

Итак, изначально я думал о брандмауэре, но у ServiceBus Explorer нет проблем с загрузкой файла в очередь.

Может кто-нибудь объяснить, почему Service Bus Explorer работает нормально и этот метод не может подключиться?

1 Ответ

0 голосов
/ 08 ноября 2019

ServiceBus Explorer использует NetMessaging, который может переключаться с AMQP на HTTPS. Он также использует старый SDK, где вы используете новый SDK, который не переключается при сбое и по умолчанию использует AMQP. Попробуйте переключиться на соединение через WebSockets

Endpoint=sb://<namespace>.servicebus.windows.net/;SharedAccessKeyName=<policy>;
SharedAccessKey=<key>;TransportType=AmqpWebSockets

. Кроме того, перед отправкой проверьте, открыто ли соединение, проверив свойство IsClosedOrClosing на клиенте очереди.

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