Azure functions 如何访问Azure Function 2.0版中的Microsoft.ServiceBus.NamespaceManager或QueueDescription实例

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

我有一个由服务总线队列触发的azure函数。我可以访问该消息,但我也尝试使用Microsoft.ServiceBus.QueueDescription实例访问有关队列的信息;但是,我在azure函数中使用Microsoft.ServiceBus命名空间时遇到困难。我最初收到一个错误

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谢谢!就这样,我一点也没回来