Невозможно подключиться к эмулятору служебной шины из функций, хотя он работает через сервер API.C#

Место общения программистов C#
Anonymous
Невозможно подключиться к эмулятору служебной шины из функций, хотя он работает через сервер API.

Сообщение Anonymous »

Я использую .NET Aspire с API-сервером ASP.NET, служебной шиной Azure и функциями Azure (изолированная рабочая модель), и все они работают локально.
Однако проблема в том, что я не могу подключиться к служебной шине из функции, хотя я проверил, что предоставленная строка подключения та же самая. Он не может ни потреблять, ни записывать в очередь и зависает на неопределенный срок.

Код: Выделить всё

string? connectionString = Environment.GetEnvironmentVariable( "SERVICE_BUS_CONNECTION_STRING");
await using var client = new ServiceBusClient(connectionString);
string queueName = "tasksQueue";
ServiceBusSender sender = client.CreateSender(queueName);
ServiceBusMessage message = new ServiceBusMessage("Health check message");
await sender.SendMessageAsync(message);
Мой код нужно отправить, а в отладчике он застрял на последней строке. Через некоторое время он возвращает сообщение «Невозможно установить соединение, поскольку целевой компьютер активно отказался от него».
Несколько проверок, которые я сделал:
  • Строка подключения присутствует во время выполнения в отладчике, и эта же строка работает для API-сервера со служебной шиной.
  • Строка подключения передается Aspire и

    Код: Выделить всё

    Endpoint=sb://localhost:34628;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;
    И я приложил фотографию страницы ресурсов Aspire, и все, кажется, работает без каких-либо ошибок.
  • Очередь с именем TaskQueue уже существует в служебной шине.
Изображение

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

Вернуться в «C#»