无法连接到 Azure 服务总线队列

Failure to connect to Azure Service bus queue

我正在尝试收听 azure 服务总线队列 但是在初始化到队列的连接时出现异常。 我试图寻找出路,但收效甚微。 请注意,我正在使用 .NETCore 2.1。 这是初始化连接的方式:

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

这是异常:

System.TypeInitializationException: The type initializer for 'Microsoft.ServiceBus.Messaging.Constants' threw an exception. ---> System.TypeLoadException: Could not load type 'System.UriTemplate' from assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. at Microsoft.ServiceBus.Messaging.Constants..cctor() --- End of inner exception stack trace --- at Microsoft.ServiceBus.ServiceBusConnectionStringBuilder..ctor() at Microsoft.ServiceBus.Messaging.QueueClient.CreateFromConnectionString(String connectionString, String path, ReceiveMode mode)

同样的初始化在使用 .net 框架时工作正常。 我怎样才能在 .NetCore 中做到这一点? 请帮忙 提前致谢

在 Dotnet Core 2.1 上你可以试试这个。

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

希望对您有所帮助。

您也可以使用 MessagingFactory

MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);

            queueClient = await factory.CreateMessageReceiverAsync(_entityPath, ReceiveMode.ReceiveAndDelete);

对于 .NET Core,您应该使用新的 .NET Standard Azure Service Bus 客户端,Microsoft.Azure.ServiceBus. The old client WindowsAzure.ServiceBus 是旧版客户端,仅适用于 Full Framework, 建议往前走。

新客户端没有工厂的概念。您负责创建实体客户端 (QueueClient, SubscriptionClient, and TopicClient) 和管理连接。