没有这样的主机是已知的 - 公共交通 - Azure 服务总线

No such host is known - Mass Transit - Azure Service Bus

这可能是非常基本的,但由于某种原因我无法让它工作。

我正在使用公共交通 Azure 服务总线包 v 5.5.6 连接到我在 Azure 上的服务总线队列。

以下 Mass Transit documentation 这是我尝试创建总线控件并启动它的方式:

            this.bus = Bus.Factory.CreateUsingAzureServiceBus(sbc =>
            {

                var host = sbc.Host(newUri("sb://<my-servicebus-namespace>.servicebus.windows.net/"), h =>
                {
                    h.SharedAccessSignature(s =>
                    {
                        s.KeyName = "<key-name>";
                        s.SharedAccessKey = "<key>"; 
                        s.TokenTimeToLive = TimeSpan.FromDays(1);
                        s.TokenScope = TokenScope.Namespace;                       
                    });

                 });
            });

            await bus.StartAsync(); 

但是它一直抛出 "No such host is known".

在 Microsoft.Azure.ServiceBus.Management.ManagementClient.SendHttpRequest(HttpRequestMessage 请求,CancellationToken cancellationToken)在 C:\ApplicationSourceCode\azure-sdk-for-net\sdk\servicebus\Microsoft.Azure.ServiceBus\src\Management\ManagementClient.cs:line 1219

我什至尝试过:"sb://<my-servicebus-namespace>.servicebus.windows.net/<my-queue-name>/" 作为主机 uri

我正在使用 Azure 服务总线标准层。

它在 Microsot.Azure.ServiceBus 中使用 QueueClient 工作正常。

我尝试 ping 服务总线 uri,它确实存在。

我错过了什么?

应该可以,不知道为什么不行。您可以将其更改为使用连接字符串(从 Azure 门户复制)并将其作为字符串传递给主机方法:

cfg.Host(connectionString);

连接字符串应包括解析并用于配置主机的主机、访问密钥等。 MassTransit 使用相同的队列客户端,所以我不确定为什么它不适合您。除非您 运行 总线不在与队列客户端相同的上下文中,例如在防火墙后面或不传播 DNS 的东西后面。