Azure functions 如何访问Azure Function 2.0版中的Microsoft.ServiceBus.NamespaceManager或QueueDescription实例
我有一个由服务总线队列触发的azure函数。我可以访问该消息,但我也尝试使用Microsoft.ServiceBus.QueueDescription实例访问有关队列的信息;但是,我在azure函数中使用Microsoft.ServiceBus命名空间时遇到困难。我最初收到一个错误Azure functions 如何访问Azure Function 2.0版中的Microsoft.ServiceBus.NamespaceManager或QueueDescription实例,azure-functions,azure-servicebus-queues,Azure Functions,Azure Servicebus Queues,我有一个由服务总线队列触发的azure函数。我可以访问该消息,但我也尝试使用Microsoft.ServiceBus.QueueDescription实例访问有关队列的信息;但是,我在azure函数中使用Microsoft.ServiceBus命名空间时遇到困难。我最初收到一个错误 Microsoft.ServiceBus: The type initializer for 'Microsoft.ServiceBus.Messaging.Constants' threw an exception
Microsoft.ServiceBus: The type initializer for
'Microsoft.ServiceBus.Messaging.Constants' threw an exception. Microsoft.ServiceBus:
Could not load file or assembly
'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
The system cannot find the file specified. System.Private.CoreLib: Could not load the specified file.
因此,我将System.ServiceModel的所有库添加到项目中;然而,在测试中出现了一个类似的问题,即找不到缺少的依赖项
我是否应该使用其他方式为触发函数管道的队列获取QueueDescription实例?目前我在项目中有以下库
Microsoft.Azure.WebJobs.Extensions.ServiceBus (3.0.4)
WindowsAzure.ServiceBus (5.2.0)
如果包含的任何一个servicebus库都能够访问QueueDescription实例,您有什么想法吗
感谢,因为与.NET核心兼容的包Microsoft.Azure.ServiceBus
不再支持NamespaceManager(在WebJobs或函数中使用Service Bus时,它是Microsoft.Azure.WebJobs.Extensions.ServiceBus的依赖项),必须使用包Microsoft.Azure.Management.ServiceBus.Fluent
和附属公司
我使用托管身份在我的函数中实现了这一点,但AzureCredentialFactory也支持其他形式的身份验证:
...
// some magic that determines subscriptionId, resourceGroupName & sbNamespaceName
...
var credentials = SdkContext.AzureCredentialsFactory.FromMSI(new MSILoginInformation(MSIResourceType.VirtualMachine), AzureEnvironment.AzureGlobalCloud);
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithSubscription(subscriptionId);
var sbNamespace = azure.ServiceBusNamespaces.GetByResourceGroup(resourceGroupName, sbNamespaceName);
var queues = sbNamespace.Queues.List();
...
我不明白你需要什么——这是什么意思?我正在尝试检查azure函数管道中的计划和活动消息计数,该管道以由serviceBusQueue@l--我编辑了这个问题。基本上,在运行时,我似乎没有必要的依赖项来使用Microsoft.ServiceBus的某些部分;然而,我认为它是WindowsAzure.ServiceBus的一部分。在其他使用Microsoft.ServiceBus命名空间并安装了WindowsAzure.ServiceBus包的类库中,我没有遇到此错误。它只发生在azure函数中app@pbordeaux-你查过我的解决方案了吗?或者这对你来说不再重要了?@Kailter谢谢!就这样,我一点也没回来