带有 Azure 服务总线 V7 的 MassTransit:缺少 属性 TokenProvider
MassTransit with Azure Service Bus V7: missing property TokenProvider
我将 MassTransit 升级到 V7,与 Azure 服务总线的连接似乎发生了重大变化。以前,创建 IBusControl
的代码如下所示:
Bus.Factory.CreateUsingAzureServiceBus(cfg =>
{
cfg.Host(this.Host,
h =>
{
h.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(
"RootManageSharedAccessKey", this.AzureSharedAccessSignatureTokenKey);
});
...
这不再编译,因为 属性 TokenProvider
不再在 IServiceBusHostConfigurator
.
中
提供服务总线访问密钥的新方法是什么?
在 V7 中,可以在 属性 NamedKeyCredential
中指定共享访问令牌。所以我们写成:
而不是 h.TokenProvider = ...
h.NamedKeyCredential = new AzureNamedKeyCredential(
"RootManageSharedAccessKey",
this.AzureSharedAccessSignatureTokenKey);
Azure SDK v7 使用 TokenCredential
,这是为所有各种 v7 SDK 指定凭据的新方法。你可以阅读它 in the documentation.
因此,对于 MassTransit,您可以将 TokenCredential
设置为任何受支持的凭据类型。
TokenCredential = new DefaultAzureCredential();
我将 MassTransit 升级到 V7,与 Azure 服务总线的连接似乎发生了重大变化。以前,创建 IBusControl
的代码如下所示:
Bus.Factory.CreateUsingAzureServiceBus(cfg =>
{
cfg.Host(this.Host,
h =>
{
h.TokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(
"RootManageSharedAccessKey", this.AzureSharedAccessSignatureTokenKey);
});
...
这不再编译,因为 属性 TokenProvider
不再在 IServiceBusHostConfigurator
.
提供服务总线访问密钥的新方法是什么?
在 V7 中,可以在 属性 NamedKeyCredential
中指定共享访问令牌。所以我们写成:
h.TokenProvider = ...
h.NamedKeyCredential = new AzureNamedKeyCredential(
"RootManageSharedAccessKey",
this.AzureSharedAccessSignatureTokenKey);
Azure SDK v7 使用 TokenCredential
,这是为所有各种 v7 SDK 指定凭据的新方法。你可以阅读它 in the documentation.
因此,对于 MassTransit,您可以将 TokenCredential
设置为任何受支持的凭据类型。
TokenCredential = new DefaultAzureCredential();