我正在尝试收听azure服务总线队列 但是初始化与队列的连接时出现异常。 我试图寻找出路,但成功率较低。 请注意,正在使用.NETCore 2.1。 这是初始化连接的方式:
// Initialize the connection to Service Bus Queue
_queueClient = QueueClient.CreateFromConnectionString(_interswitchQueueConnectionString, _interswitchQueueName, ReceiveMode.ReceiveAndDelete);
这个异常越来越严重了:
System.TypeInitializationException:类型初始化器 “ Microsoft.ServiceBus.Messaging.Constants”引发了异常。 -> System.TypeLoadException:无法加载类型“ System.UriTemplate” 来自程序集'System.ServiceModel,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = b77a5c561934e089'。 在Microsoft.ServiceBus.Messaging.Constants..cctor() ---内部异常堆栈跟踪的结尾--- 在Microsoft.ServiceBus.ServiceBusConnectionStringBuilder..ctor() 在Microsoft.ServiceBus.Messaging.QueueClient.CreateFromConnectionString(String connectionString,字符串路径,ReceiveMode模式)
使用.net框架时,相同的初始化工作正常。 如何在.NetCore中做到这一点? 请帮忙 预先感谢
答案 0 :(得分:3)
对于.NET Core,您应该使用新的.NET Standard Azure Service Bus客户端Microsoft.Azure.ServiceBus。旧客户端WindowsAzure.ServiceBus是旧客户端,仅适用于Full Framework,并且不建议继续。
新客户没有工厂的概念。您负责创建实体客户端(QueueClient
,SubscriptionClient
和TopicClient
)并管理连接。
答案 1 :(得分:1)
在Dotnet Core 2.1上,您可以尝试此操作。
var queueClient = new QueueClient(connectionString, entityPath, ReceiveMode.ReceiveAndDelete);
希望这会有所帮助。
答案 2 :(得分:0)
您也可以使用MessagingFactory
MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);
queueClient = await factory.CreateMessageReceiverAsync(_entityPath, ReceiveMode.ReceiveAndDelete);