Estou tentando conectar ao emulador do Azure Service Bus em execução em um contêiner Docker. O contêiner está instalado e funcionando com sucesso, e os logs indicam que está tudo bem. Verifiquei que consigo conectar a ele via telnet da máquina host.
No entanto, não consigo conectar usando meu aplicativo C#. Continuo recebendo um erro 404 ao tentar conectar. Estou tentando descobrir a string de conexão correta, mas estou travado.
Aqui estão as AuthorizationRules do arquivo Config.json do ASCE :
"AuthorizationRules": [
{
"KeyName": "RootManageSharedAccessKey",
"PrimaryKey": "ZDVkM2UyYzUtMTVhMi00NmYwLWJjOWUtYjk5OGRkMmIwZTFh",
"Claims": [
"Manage",
"Send",
"Listen"
]
}
]
A PrimaryKey é apenas um valor local e inventado para teste.
Meu código de cliente:
using Azure.Messaging.ServiceBus.Administration;
using System;
using System.Threading.Tasks;
public class Program
{
private const string connectionString =
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=ZDVkM2UyYzUtMTVhMi00NmYwLWJjOWUtYjk5OGRkMmIwZTFh;UseDevelopmentEmulator=true;";
public static async Task Main()
{
var adminClient = new ServiceBusAdministrationClient(connectionString);
try
{
var queues = adminClient.GetQueuesAsync();
await foreach (var queue in queues)
{
Console.WriteLine($"Queue: {queue.Name}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Failed to list queues: {ex.Message}");
}
}
}
Erro:
Continuo recebendo um erro 404 quando tento executar o programa. Verifiquei que o emulador está ativo e em execução por meio dos logs do Docker e consigo fazer telnet no endpoint do emulador, então o problema parece estar na string de conexão ou em como o cliente está configurado.
O que eu tentei:
- Verifiquei as AuthorizationRules no arquivo Config.json para o Emulador do Barramento de Serviço do Azure.
- A string de conexão parece estar formatada corretamente, mas ainda estou recebendo o erro.
- Verifiquei que o emulador está sendo executado na porta correta e pode ser acessado da máquina host via telnet.
Alguém pode me ajudar com o formato correto da string de conexão ou alguma outra sugestão sobre como se conectar ao emulador do Azure Service Bus a partir do C#?