【问题标题】:MassTransit with Azure Service Bus V7: missing property TokenProvider使用 Azure 服务总线 V7 的 MassTransit:缺少属性 TokenProvider
【发布时间】:2022-01-18 16:33:58
【问题描述】:

我将 MassTransit 升级到 V7,似乎与 Azure 服务总线的连接发生了重大变化。以前,创建IBusControl 的代码如下所示:

Bus.Factory.CreateUsingAzureServiceBus(cfg =>
  {               
    cfg.Host(this.Host,
      h =>
        {
          h.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(
              "RootManageSharedAccessKey", this.AzureSharedAccessSignatureTokenKey);
        });
...

这不再编译,因为属性TokenProvider 不再在IServiceBusHostConfigurator 中。

提供服务总线访问密钥的新方法是什么?

【问题讨论】:

    标签: azureservicebus masstransit


    【解决方案1】:

    Azure SDK v7 使用TokenCredential,这是为所有各种 v7 SDK 指定凭据的新方法。你可以阅读它in the documentation

    因此,对于 MassTransit,您可以将 TokenCredential 设置为任何受支持的凭据类型。

    TokenCredential = new DefaultAzureCredential();
    

    【讨论】:

      【解决方案2】:

      在 V7 中,可以在属性 NamedKeyCredential 中指定共享访问令牌。所以我们写的不是h.TokenProvider = ...,而是:

      h.NamedKeyCredential = new AzureNamedKeyCredential(
          "RootManageSharedAccessKey",
          this.AzureSharedAccessSignatureTokenKey);
      

      【讨论】:

        猜你喜欢
        • 2022-10-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多