Dela via


Aspire Azure Service Bus integrering

Inkluderar:Värdintegrering ingår Värdintegrering &–& integrering ingår integration

Azure Service Bus är en fullständigt hanterad meddelandemäklare för företag med meddelandeköer och ämnen för publicering och prenumeration. Med integreringen AspireAzure Service Bus kan du ansluta till Azure Service Bus instanser från .NET program.

Integrering av värdtjänster

Värdintegreringen AspireAzure Service Bus modellerar de olika typerna av Service Bus-resurser som följer:

Om du vill komma åt dessa typer och API:er för att uttrycka dem lägger du till 📦Aspire. Hosting.Azure. ServiceBus NuGet-paketet i AppHost-projektet .

dotnet add package Aspire.Hosting.Azure.ServiceBus

Mer information finns i dotnet add package eller Hantera paketberoenden i .NET program.

Lägga till Azure Service Bus resurs

I ditt AppHost-projekt anropar du AddAzureServiceBus för att lägga till och returnera en Azure Service Bus resursbyggare.

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging");

// After adding all resources, run the app...

När du lägger till en AzureServiceBusResource i AppHost exponeras andra användbara API:er för att lägga till köer och ämnen. Med andra ord måste du lägga till en AzureServiceBusResource innan du lägger till någon av de andra Service Bus-resurserna.

Viktig

När du anropar AddAzureServiceBusanropas implicit AddAzureProvisioning– vilket ger stöd för att generera Azure resurser dynamiskt under appstarten. Appen måste konfigurera lämplig prenumeration och plats. Mer information finns i Konfiguration.

Ansluta till ett befintligt Azure Service Bus namnområde

Du kan ha ett befintligt Azure Service Bus namnområde som du vill ansluta till. Koppla ett anrop för att markera att din AzureServiceBusResource är en befintlig resurs.

var builder = DistributedApplication.CreateBuilder(args);

var existingServiceBusName = builder.AddParameter("existingServiceBusName");
var existingServiceBusResourceGroup = builder.AddParameter("existingServiceBusResourceGroup");

var serviceBus = builder.AddAzureServiceBus("messaging")
                        .AsExisting(existingServiceBusName, existingServiceBusResourceGroup);

builder.AddProject<Projects.WebApplication>("web")
       .WithReference(serviceBus);

// After adding all resources, run the app...

Viktig

När du anropar RunAsExisting, PublishAsExistingeller AsExisting metoder för att arbeta med resurser som redan finns i din Azure prenumeration, måste du lägga till vissa konfigurationsvärden i AppHost för att säkerställa att Aspire de kan hittas. De nödvändiga konfigurationsvärdena är SubscriptionId, AllowResourceGroupCreation, ResourceGroup och Location. Om du inte anger dem, visas "Konfiguration saknas"-fel på instrumentpanelen Aspire. Mer information om hur du anger dem finns i Konfiguration.

Mer information om hur du behandlar Azure Service Bus resurser som befintliga resurser finns i Använda befintliga Azure resurser.

Notera

Du kan också lägga till en anslutningssträng i AppHost i stället för att representera en Azure Service Bus resurs. Den här metoden är svagt skriven och fungerar inte med rolltilldelningar eller infrastrukturanpassningar. För mer information, se Lägg till befintliga Azure resurser med anslutningssträngar.

Lägg till Azure Service Bus i kön

Om du vill lägga till en Azure Service Bus kö anropar du metoden AddServiceBusQueueIResourceBuilder<AzureServiceBusResource>:

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging");
var queue = serviceBus.AddServiceBusQueue("queue");

// After adding all resources, run the app...

När du anropar AddServiceBusQueue(IResourceBuilder<AzureServiceBusResource>, String, String)konfigurerar den dina Service Bus-resurser att ha en kö med namnet queue. Uttrycker en explicit förälder-barn-relation mellan Service Bus-resursen messaging och dess underordnade queue. Kön skapas i Service Bus-namnområdet som representeras av AzureServiceBusResource som du lade till tidigare. Mer information finns i Köer, ämnen och prenumerationer i Azure Service Bus.

Lägg till Azure Service Bus ämne och prenumeration

Om du vill lägga till ett Azure Service Bus ämne anropar du metoden AddServiceBusTopicIResourceBuilder<AzureServiceBusResource>:

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging");
var topic = serviceBus.AddServiceBusTopic("topic");

// After adding all resources, run the app...

När du anropar AddServiceBusTopic(IResourceBuilder<AzureServiceBusResource>, String, String)konfigureras dina Service Bus-resurser så att de har ett ämne med namnet topic. Ämnet skapas i Service Bus-namnområdet som representeras av AzureServiceBusResource som du lade till tidigare.

Om du vill lägga till en prenumeration för ämnet anropar du metoden AddServiceBusSubscriptionIResourceBuilder<AzureServiceBusTopicResource> och konfigurerar den med hjälp av metoden WithProperties:

using Aspire.Hosting.Azure;

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging");
var topic = serviceBus.AddServiceBusTopic("topic");
topic.AddServiceBusSubscription("sub1")
     .WithProperties(subscription =>
     {
         subscription.MaxDeliveryCount = 10;
         subscription.Rules.Add(
             new AzureServiceBusRule("app-prop-filter-1")
             {
                 CorrelationFilter = new()
                 {
                     ContentType = "application/text",
                     CorrelationId = "id1",
                     Subject = "subject1",
                     MessageId = "msgid1",
                     ReplyTo = "someQueue",
                     ReplyToSessionId = "sessionId",
                     SessionId = "session1",
                     SendTo = "xyz"
                 }
             });
     });

// After adding all resources, run the app...

Föregående kod lägger inte bara till ett ämne och skapar och konfigurerar en prenumeration med namnet sub1 för ämnet. Prenumerationen har ett maximalt leveransantal på 10 och en regel med namnet app-prop-filter-1. Regeln är ett korrelationsfilter som filtrerar meddelanden baserat på egenskaperna ContentType, CorrelationId, Subject, MessageId, ReplyTo, ReplyToSessionId, SessionIdoch SendTo.

Mer information finns i Köer, ämnen och prenumerationer i Azure Service Bus.

Lägga till Azure Service Bus emulatorresurs

Om du vill lägga till en Azure Service Bus emulatorresurs genom att kedja ett anrop på en <IResourceBuilder<AzureServiceBusResource>> till RunAsEmulator-API:et:

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging")
                        .RunAsEmulator();

// After adding all resources, run the app...

När du anropar RunAsEmulatorkonfigureras dina Service Bus-resurser att köras lokalt med hjälp av en emulator. Emulatorn i det här fallet är Azure Service Bus Emulatorn. Azure Service Bus-emulatorn ger en kostnadsfri lokal miljö för att testa dina Azure Service Bus-appar och den är en perfekt följeslagare till AspireAzure hosting-integration. Emulatorn är inte installerad, i stället är den tillgänglig i form av en container Aspire. När du lägger till en container i AppHost, som du ser i föregående exempel med avbildningen (och den tillhörande mcr.microsoft.com/azure-messaging/servicebus-emulator avbildningenmcr.microsoft.com/azure-sql-edge), skapas och startas containern när AppHost startar. Mer information finns i Livscykel för containerresurser.

Konfigurera Service Bus-emulatorkontainer

Det finns olika konfigurationer för containerresurser, till exempel kan du konfigurera containerns portar eller tillhandahålla en wholistic JSON konfiguration som åsidosätter allt.

Konfigurera Service Bus-emulatorns värdport för container

Som standard exponerar Service Bus-emulatorn containern när den konfigureras av Aspire, följande slutpunkter:

Slutpunkt Bild Containerhamn Anslutningsport
emulator mcr.microsoft.com/azure-messaging/servicebus-emulator 5672 dynamisk
tcp mcr.microsoft.com/mssql/server 1433 dynamisk

Porten som den lyssnar på är dynamisk som standard. När containern startar mappas porten till en slumpmässig port på värddatorn. För att konfigurera slutpunktsporten anropar kedjan containerresursverktyget som tillhandahålls av metoden RunAsEmulator och sedan WithHostPort(IResourceBuilder<AzureServiceBusEmulatorResource>, Nullable<Int32>) enligt följande exempel:

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging").RunAsEmulator(
                         emulator =>
                         {
                             emulator.WithHostPort(7777);
                         });

// After adding all resources, run the app...

Föregående kod konfigurerar Service Bus-emulatorns befintliga emulator slutpunkt för att lyssna på port 7777. Service Bus-emulatorcontainerns port mappas till värdporten enligt följande tabell:

Slutpunktsnamn Portmappning (container:host)
emulator 5672:7777
Konfigurera konfigurationen för Service Bus-emulatorcontainer JSON

Service Bus-emulatorn genererar automatiskt en konfigrering som liknar den här config.json filen från de konfigurerade resurserna. Du kan åsidosätta den här genererade filen helt eller uppdatera JSON konfigurationen med en JsonNode representation av konfigurationen.

Om du vill ange en anpassad JSON konfigurationsfil anropar du metoden WithConfigurationFile(IResourceBuilder<AzureServiceBusEmulatorResource>, String):

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging").RunAsEmulator(
                         emulator =>
                         {
                             emulator.WithConfigurationFile(
                                 path: "./messaging/custom-config.json");
                         });

Föregående kod konfigurerar Service Bus-emulatorcontainern så att den använder en anpassad JSON konfigurationsfil som finns på ./messaging/custom-config.json. Om du i stället vill åsidosätta specifika egenskaper i standardkonfigurationen anropar du metoden WithConfiguration(IResourceBuilder<AzureServiceBusEmulatorResource>, Action<JsonNode>):

var builder = DistributedApplication.CreateBuilder(args);

var serviceBus = builder.AddAzureServiceBus("messaging").RunAsEmulator(
                         emulator =>
                         {
                             emulator.WithConfiguration(
                                 (JsonNode configuration) =>
                                 {
                                     var userConfig = configuration["UserConfig"];
                                     var ns = userConfig["Namespaces"][0];
                                     var firstQueue = ns["Queues"][0];
                                     var properties = firstQueue["Properties"];
                                     
                                     properties["MaxDeliveryCount"] = 5;
                                     properties["RequiresDuplicateDetection"] = true;
                                     properties["DefaultMessageTimeToLive"] = "PT2H";
                                 });
                         });

// After adding all resources, run the app...

Föregående kod hämtar noden UserConfig från standardkonfigurationen. Sedan uppdateras den första köns egenskaper för att ställa in MaxDeliveryCount till 5, RequiresDuplicateDetection till true, och DefaultMessageTimeToLive till 2 hours.

Konfigurationsgenererad Bicep

Om du inte har använt Bicep tidigare är det ett domänspecifikt språk för att definiera Azure resurser. Med Aspirebehöver du inte skriva Bicep för hand, i stället genererar etablerings-API:erna Bicep åt dig. När du publicerar din app genereras Bicep-filen tillsammans med manifestfilen. När du lägger till en Azure Service Bus resurs genereras följande Bicep:

@description('The location for the resource(s) to be deployed.')
param location string = resourceGroup().location

param sku string = 'Standard'

resource service_bus 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: take('servicebus-${uniqueString(resourceGroup().id)}', 50)
  location: location
  properties: {
    disableLocalAuth: true
  }
  sku: {
    name: sku
  }
  tags: {
    'aspire-resource-name': 'service-bus'
  }
}

output serviceBusEndpoint string = service_bus.properties.serviceBusEndpoint

output name string = service_bus.name

Föregående Bicep är en modul som etablerar en Azure Service Bus namnområdesresurs. Dessutom skapas rolltilldelningar för resursen Azure i en separat modul:

@description('The location for the resource(s) to be deployed.')
param location string = resourceGroup().location

param service_bus_outputs_name string

param principalType string

param principalId string

resource service_bus 'Microsoft.ServiceBus/namespaces@2024-01-01' existing = {
  name: service_bus_outputs_name
}

resource service_bus_AzureServiceBusDataOwner 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(service_bus.id, principalId, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '090c5cfd-751d-490a-894a-3ce6f1109419'))
  properties: {
    principalId: principalId
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', '090c5cfd-751d-490a-894a-3ce6f1109419')
    principalType: principalType
  }
  scope: service_bus
}

Förutom Service Bus-namnområdet etablerar det även en Azure rollbaserad åtkomstkontroll (Azure RBAC) inbyggd roll för Azure Service Bus dataägare. Rollen tilldelas till Service Bus-namnområdets resursgrupp. Mer information finns i Azure Service Bus Dataägare.

Anpassa tillhandahållandeinfrastruktur

Alla AspireAzure resurser är underklasser av den AzureProvisioningResource typen. Den här typen möjliggör att den genererade Bicep kan anpassas genom att tillhandahålla ett tydligt API för att konfigurera Azure-resurserna med hjälp av ConfigureInfrastructure<T>(IResourceBuilder<T>, Action<AzureResourceInfrastructure>)-API:et. Du kan till exempel konfigurera sku:n, platsen med mera. I följande exempel visas hur du anpassar Azure Service Bus resursen:

builder.AddAzureServiceBus("service-bus")
    .ConfigureInfrastructure(infra =>
    {
        var serviceBusNamespace = infra.GetProvisionableResources()
                                       .OfType<ServiceBusNamespace>()
                                       .Single();

        serviceBusNamespace.Sku = new ServiceBusSku
        {
            Name = ServiceBusSkuName.Premium
        };
        serviceBusNamespace.Tags.Add("ExampleKey", "Example value");
    });

Föregående kod:

Det finns många fler konfigurationsalternativ för att anpassa Azure Service Bus resursen. Mer information finns i Azure.Provisioning.ServiceBus. För mer information, se Azure. Anpassning av tilldelning.

Utför hälsokontroller för integration

Azure Service Bus värdintegrering lägger automatiskt till en hälsokontroll för Service Bus-resursen. Hälsokontrollen verifierar att servicebussen körs och att en anslutning kan upprättas till den.

Värdintegrationen förlitar sig på NuGet-paketet AspNetCore.HealthChecks.AzureServiceBus.

Client integration

För att komma igång med AspireAzure Service Bus klientintegrering, installera 📦 NuGet-paketet i det klientanvändande projektet, det vill säga projektet för applikationen som använder Service Bus-klient. Service Bus-klientintegrering registrerar en ServiceBusClient instans som du kan använda för att interagera med Service Bus.

dotnet add package Aspire.Azure.Messaging.ServiceBus

Lägg till Service Bus-klient

I Program.cs-filen för ditt klientanvändande projekt anropar du AddAzureServiceBusClient-tilläggsmetoden på alla IHostApplicationBuilder för att registrera ServiceBusClient för användning i beroendeinjektionscontainern. Metoden tar en parameter för anslutningsnamn.

builder.AddAzureServiceBusClient(connectionName: "messaging");

Du kan sedan hämta ServiceBusClient-instansen med hjälp av dependency injection. Om du till exempel vill hämta anslutningen från en exempeltjänst:

public class ExampleService(ServiceBusClient client)
{
    // Use client...
}

Mer information om beroendeinmatning finns i .NET beroendeinmatning.

Välj rätt anslutningsnamn

När du anropar AddAzureServiceBusClient()beror rätt värde på det objekt som du skickade till klienten i AppHost.

Om du till exempel använder den här koden i AppHost:

var serviceBus = builder.AddAzureServiceBus("messaging");

var apiService = builder.AddProject<Projects.Example_ApiService>("apiservice")
    .WithReference(serviceBus);

Sedan är rätt kod för att lägga till Service Bus i ditt klientkrävande program:

builder.AddAzureServiceBusClient(connectionName: "messaging");

Men om du har skapat och skickat ett Service Bus-ämne i AppHost:

var serviceBus = builder.AddAzureServiceBus("messaging");
var topic = serviceBus.AddServiceBusTopic("myTopic");

var apiService = builder.AddProject<Projects.Example_ApiService>("apiservice")
    .WithReference(topic);

Sedan är rätt kod för att lägga till Service Bus-ämnet i ditt klientkrävande program:

builder.AddAzureServiceBusClient(connectionName: "myTopic");

Mer information finns i Lägg till Azure Service Bus resurs och Lägg till Azure Service Bus ämne och prenumeration.

Lägg till en nycklad Service Bus-klient

Det kan finnas situationer där du vill registrera flera ServiceBusClient instanser med olika anslutningsnamn. Om du vill registrera nyckelade Service Bus-klienter anropar du metoden AddKeyedAzureServiceBusClient:

builder.AddKeyedAzureServiceBusClient(name: "mainBus");
builder.AddKeyedAzureServiceBusClient(name: "loggingBus");

Viktig

När du använder nyckelade tjänster förväntas service bus-resursen konfigurera två namngivna bussar, en för mainBus och en för loggingBus.

Sedan kan du hämta ServiceBusClient-instans genom dependency injection. Om du till exempel vill hämta anslutningen från en exempeltjänst:

public class ExampleService(
    [FromKeyedServices("mainBus")] ServiceBusClient mainBusClient,
    [FromKeyedServices("loggingBus")] ServiceBusClient loggingBusClient)
{
    // Use clients...
}

Mer information om nyckelade tjänster finns i .NET beroendeinmatning: Nyckelade tjänster.

Konfiguration

Den AspireAzure Service Bus integreringen innehåller flera alternativ för att konfigurera anslutningen baserat på kraven och konventionerna i ditt projekt.

Använda en anslutningssträng

När du använder en anslutningssträng från ConnectionStrings-konfigurationsavsnittet kan du ange namnet på anslutningssträngen när du anropar metoden AddAzureServiceBusClient:

builder.AddAzureServiceBusClient("messaging");

Sedan hämtas anslutningssträngen från ConnectionStrings-konfigurationsavsnittet:

{
  "ConnectionStrings": {
    "messaging": "Endpoint=sb://{namespace}.servicebus.windows.net/;SharedAccessKeyName={keyName};SharedAccessKey={key};"
  }
}

Mer information om hur du formaterar den här anslutningssträngen finns i dokumentationen om ConnectionString.

Använda konfigurationsprovidrar

Aspire- ochAzure Service Bus-integrationen stöder Microsoft.Extensions.Configuration. Den läser in AzureMessagingServiceBusSettings från konfigurationen med hjälp av nyckeln Aspire:Azure:Messaging:ServiceBus. Följande kodfragment är ett exempel på en appsettings.json fil som konfigurerar några av alternativen:

{
  "Aspire": {
    "Azure": {
      "Messaging": {
        "ServiceBus": {
          "ConnectionString": "Endpoint=sb://{namespace}.servicebus.windows.net/;SharedAccessKeyName={keyName};SharedAccessKey={key};",
          "DisableTracing": false
        }
      }
    }
  }
}

Det fullständiga Service Bus-klientintegreringsschemat JSON finns i Aspire.Azure. Messaging.ServiceBus/ConfigurationSchema.json.

Använda namngiven konfiguration

Integreringen AspireAzure Service Bus stöder namngiven konfiguration, vilket gör att du kan konfigurera flera instanser av samma resurstyp med olika inställningar. Den namngivna konfigurationen använder anslutningsnamnet som en nyckel under huvudkonfigurationsavsnittet.

{
  "Aspire": {
    "Azure": {
      "Messaging": {
        "ServiceBus": {
          "bus1": {
            "ConnectionString": "Endpoint=sb://namespace1.servicebus.windows.net/;SharedAccessKeyName=keyName;SharedAccessKey=key;",
            "DisableTracing": false
          },
          "bus2": {
            "ConnectionString": "Endpoint=sb://namespace2.servicebus.windows.net/;SharedAccessKeyName=keyName;SharedAccessKey=key;",
            "DisableTracing": true
          }
        }
      }
    }
  }
}

I det här exemplet kan anslutningsnamnen bus1 och bus2 användas när du anropar AddAzureServiceBusClient:

builder.AddAzureServiceBusClient("bus1");
builder.AddAzureServiceBusClient("bus2");

Den namngivna konfigurationen har företräde framför konfigurationen på den översta nivån. Om båda anges åsidosätter inställningarna från den namngivna konfigurationen inställningarna på den översta nivån.

Använd infogade delegater

Du kan också skicka delegeringen Action<AzureMessagingServiceBusSettings> configureSettings för att konfigurera vissa eller alla alternativ direkt, till exempel för att inaktivera spårning i koden.

builder.AddAzureServiceBusClient(
    "messaging",
    static settings => settings.DisableTracing = true);

Du kan också konfigurera Azure.Messaging.ServiceBus.ServiceBusClientOptions med hjälp av den valfria Action<ServiceBusClientOptions> configureClientOptions parametern för metoden AddAzureServiceBusClient. Om du till exempel vill sätta ServiceBusClientOptions.Identifier-suffixet för 'user-agent'-huvudet för alla förfrågningar som görs av den här klienten:

builder.AddAzureServiceBusClient(
    "messaging",
    configureClientOptions:
        clientOptions => clientOptions.Identifier = "myapp");

Client hälsokontroller för integrering

Integreringar aktiverar som standard Aspire hälsokontroller för alla tjänster. Mer information finns i Aspire översikten över integreringar.

Integreringen av AspireAzure Service Bus:

  • Lägger till hälsokontrollen när AzureMessagingServiceBusSettings.DisableTracing är false, vilket försöker ansluta till Service Bus.
  • Integrerar med HTTP-slutpunkten /health, som anger att alla registrerade hälsokontroller måste godkännas för att appen ska betraktas som redo att ta emot trafik.

Observerbarhet och telemetri

Aspire integreringar konfigurerar automatiskt konfigurationer för loggning, spårning och mått, som ibland kallas grundpelarna för observerbarhet. Mer information om integreringsobservabilitet och telemetri finns i Aspire översikten över integreringar. Beroende på säkerhetskopieringstjänsten kanske vissa integreringar bara stöder vissa av dessa funktioner. Vissa integreringar stöder till exempel loggning och spårning, men inte mått. Telemetrifunktioner kan också inaktiveras med hjälp av de tekniker som visas i avsnittet Konfiguration .

Skogsavverkning

Aspire Azure Service Bus-integreringen använder följande loggkategorier:

  • Azure.Core
  • Azure.Identity
  • Azure-Messaging-ServiceBus

Förutom att få Azure Service Bus begärandediagnostik för misslyckade begäranden kan du konfigurera tröskelvärden för svarstid för att avgöra vilken lyckad Azure Service Bus begärandediagnostik som ska loggas. Standardvärdena är 100 ms för punktåtgärder och 500 ms för åtgärder som inte är punktåtgärder.

builder.AddAzureServiceBusClient(
    "messaging",
    configureClientOptions:
        clientOptions => {
            clientOptions.ServiceBusClientTelemetryOptions = new()
            {
                ServiceBusThresholdOptions = new()
                {
                    PointOperationLatencyThreshold = TimeSpan.FromMilliseconds(50),
                    NonPointOperationLatencyThreshold = TimeSpan.FromMilliseconds(300)
                }
            };
        });

Spårning

Aspire Azure Service Bus-integreringen genererar följande spårningsaktiviteter med hjälp av OpenTelemetry:

  • Message
  • ServiceBusSender.Send
  • ServiceBusSender.Schedule
  • ServiceBusSender.Cancel
  • ServiceBusReceiver.Receive
  • ServiceBusReceiver.ReceiveDeferred
  • ServiceBusReceiver.Peek
  • ServiceBusReceiver.Abandon
  • ServiceBusReceiver.Complete
  • ServiceBusReceiver.DeadLetter
  • ServiceBusReceiver.Defer
  • ServiceBusReceiver.RenewMessageLock
  • ServiceBusSessionReceiver.RenewSessionLock
  • ServiceBusSessionReceiver.GetSessionState
  • ServiceBusSessionReceiver.SetSessionState
  • ServiceBusProcessor.ProcessMessage
  • ServiceBusSessionProcessor.ProcessSessionMessage
  • ServiceBusRuleManager.CreateRule
  • ServiceBusRuleManager.DeleteRule
  • ServiceBusRuleManager.GetRules

Azure Service Bus spårning är för närvarande i förhandsversion, så du måste aktivera den experimentella funktionen för att säkerställa att spårningar släpps ut.

AppContext.SetSwitch("Azure.Experimental.EnableActivitySource", true);

Mer information finns i Azure Service Bus: Distribuerad spårning och korrelation via Service Bus-meddelanden.

Mått

Den AspireAzure Service Bus integreringen stöder för närvarande inte mått som standard på grund av begränsningar med Azure SDK.

Se även