Delen via


integratie .NET AspireAzure Service Bus

Omvat: Hostingintegratie en Client-integratie

Azure Service Bus is een volledig beheerde enterprise-berichtenbroker met berichtenwachtrijen en onderwerpen over publiceren/abonneren. Met de integratie van .NET AspireAzure Service Bus kunt u vanuit Azure Service Bus toepassingen verbinding maken met .NET exemplaren.

Hostingintegratie

De .NET.NET AspireAzure Service Bus hostintegratiemodellen de verschillende Service Bus-resources als de volgende typen:

Als u toegang wilt krijgen tot deze typen en API's om ze uit te drukken, voegt u de 📦Aspire.Hosting.Azure.ServiceBus NuGet-pakket aan het app host project toe.

dotnet add package Aspire.Hosting.Azure.ServiceBus

Zie dotnet pakket toevoegen of Pakketafhankelijkheden beheren in .NET toepassingenvoor meer informatie.

Azure Service Bus-resource toevoegen

Roep in uw app-hostproject AddAzureServiceBus aan om een Azure Service Bus resourcebuilder toe te voegen en te retourneren.

var builder = DistributedApplication.CreateBuilder(args);

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

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

Wanneer u een AzureServiceBusResource toevoegt aan de app-host, worden er andere nuttige API's weergegeven om wachtrijen en onderwerpen toe te voegen. Met andere woorden, u moet een AzureServiceBusResource toevoegen voordat u een van de andere Service Bus-resources toevoegt.

Belangrijk

Wanneer u AddAzureServiceBusaanroept, wordt impliciet AddAzureProvisioningaangeroepen. Hiermee wordt ondersteuning toegevoegd voor het dynamisch genereren van Azure resources tijdens het opstarten van de app. De app moet het juiste abonnement en de juiste locatie configureren. Zie Configurationvoor meer informatie.

Gegenereerde implementatie Bicep

Als u nieuw bent met Bicep, is het een domeinspecifieke taal voor het definiëren van Azure bronnen. Met .NET.NET Aspirehoeft u bicep niet handmatig te schrijven, in plaats daarvan genereren de inrichtings-API's Bicep voor u. Wanneer u uw app publiceert, wordt de gegenereerde Bicep samen met het manifestbestand weergegeven. Wanneer u een Azure Service Bus resource toevoegt, wordt de volgende Bicep gegenereerd:

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

param sku string = 'Standard'

param principalType string

param principalId string

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'
  }
}

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
}

output serviceBusEndpoint string = service_bus.properties.serviceBusEndpoint

De voorgaande Bicep is een module die een Azure Service Bus naamruimte in richt met de volgende standaardwaarden:

  • sku: de SKU van de Service Bus-naamruimte. De standaardwaarde is Standard.
  • location: de locatie voor de Service Bus-naamruimte. De standaardwaarde is de locatie van de resourcegroep.

Naast de Service Bus-naamruimte wordt ook een ingebouwde Azure rol van gegevenseigenaar binnen Azure rollen-gebaseerd toegangsbeheer (Azure Service Bus RBAC) voorzien. De rol is toegewezen aan de resourcegroep van de Service Bus-naamruimte. Zie Azure Service Bus Gegevenseigenaarvoor meer informatie.

Voorzieningsinfrastructuur personaliseren

Alle .NET AspireAzure resources zijn subklassen van het AzureProvisioningResource type. Met dit type kunt u de gegenereerde Bicep aanpassen door een vloeiende API te bieden waarmee u de Azure-resources kunt configureren, met behulp van de ConfigureInfrastructure<T>(IResourceBuilder<T>, Action<AzureResourceInfrastructure>)-API. U kunt bijvoorbeeld de sku, locatie en meer configureren. In het volgende voorbeeld ziet u hoe u de Azure Service Bus resource kunt aanpassen:

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

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

De voorgaande code:

Er zijn nog veel meer configuratieopties beschikbaar om de Azure Service Bus resource aan te passen. Zie Azure.Provisioning.ServiceBusvoor meer informatie. Voor meer informatie, zie Azure.Aanpassing van voorzieningen.

Verbinding maken met een bestaande Azure Service Bus-naamruimte

Mogelijk hebt u een bestaande Azure Service Bus naamruimte waarmee u verbinding wilt maken. In plaats van een nieuwe Azure Service Bus resource weer te geven, kunt u een verbindingsreeks toevoegen aan de app-host. Als u een verbinding wilt toevoegen aan een bestaande Azure Service Bus-naamruimte, roept u de methode AddConnectionString aan:

var builder = DistributedApplication.CreateBuilder(args);

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

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

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

Notitie

Verbindingsreeksen worden gebruikt om een breed scala aan verbindingsgegevens weer te geven, waaronder databaseverbindingen, berichtbrokers, eindpunt-URI's en andere services. In .NET.NET Aspire nomenclatuur wordt de term "verbindingsreeks" gebruikt om alle soorten verbindingsgegevens weer te geven.

De verbindingsreeks is geconfigureerd in de configuratie van de app-host, meestal onder gebruikersgeheimen, onder de sectie ConnectionStrings. De app-host injecteert deze verbindingsreeks als een omgevingsvariabele in alle afhankelijke resources, bijvoorbeeld:

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

De afhankelijke resource heeft toegang tot de geïnjecteerde verbindingsreeks door de methode GetConnectionString aan te roepen en de verbindingsnaam door te geven als de parameter, in dit geval "messaging". De GetConnectionString-API is een afkorting voor IConfiguration.GetSection("ConnectionStrings")[name].

Azure Service Bus wachtrij toevoegen

Als u een Azure Service Bus wachtrij wilt toevoegen, roept u de methode AddServiceBusQueue aan op de IResourceBuilder<AzureServiceBusResource>:

var builder = DistributedApplication.CreateBuilder(args);

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

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

Wanneer u AddServiceBusQueue(IResourceBuilder<AzureServiceBusResource>, String, String)aanroept, worden uw Service Bus-resources geconfigureerd voor een wachtrij met de naam queue. De wachtrij wordt gemaakt in de Service Bus-naamruimte die wordt vertegenwoordigd door de AzureServiceBusResource die u eerder hebt toegevoegd. Zie Wachtrijen, onderwerpen en abonnementen in Azure Service Busvoor meer informatie.

Azure Service Bus onderwerp en abonnement toevoegen

Als u een Azure Service Bus onderwerp wilt toevoegen, roept u de methode AddServiceBusTopic aan op de IResourceBuilder<AzureServiceBusResource>:

var builder = DistributedApplication.CreateBuilder(args);

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

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

Wanneer u AddServiceBusTopic(IResourceBuilder<AzureServiceBusResource>, String, String)aanroept, worden uw Service Bus-resources geconfigureerd voor een onderwerp met de naam topic. Het onderwerp wordt gemaakt in de Service Bus-naamruimte die wordt vertegenwoordigd door de AzureServiceBusResource die u eerder hebt toegevoegd.

Als u een abonnement voor het onderwerp wilt toevoegen, roept u de AddServiceBusSubscription methode aan op de IResourceBuilder<AzureServiceBusTopicResource> en configureert u dit met behulp van de methode 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...

De voorgaande code voegt niet alleen een onderwerp toe en maakt en configureert een abonnement met de naam sub1 voor het onderwerp. Het abonnement heeft een maximum aantal leveringen van 10 en een regel met de naam app-prop-filter-1. De regel is een correlatiefilter waarmee berichten worden gefilterd op basis van de eigenschappen ContentType, CorrelationId, Subject, MessageId, ReplyTo, ReplyToSessionId, SessionIden SendTo.

Zie Wachtrijen, onderwerpen en abonnementen in Azure Service Busvoor meer informatie.

Resource voor Azure Service Bus emulator toevoegen

Als u een Azure Service Bus emulatorresource wilt toevoegen, koppelt u een aanroep op een <IResourceBuilder<AzureServiceBusResource>> aan de RunAsEmulator-API:

var builder = DistributedApplication.CreateBuilder(args);

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

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

Wanneer u RunAsEmulatoraanroept, worden uw Service Bus-resources geconfigureerd om lokaal te worden uitgevoerd met behulp van een emulator. De emulator is in dit geval de Azure Service Bus Emulator-. De Azure Service Bus Emulator biedt een gratis lokale omgeving voor het testen van uw Azure Service Bus-apps en het is een perfecte aanvulling op de .NET AspireAzure hostingintegratie. De emulator is niet geïnstalleerd, maar is toegankelijk voor .NET.NET Aspire als container. Wanneer u een container toevoegt aan de app-host, zoals wordt weergegeven in het vorige voorbeeld met de mcr.microsoft.com/azure-messaging/servicebus-emulator-containerimage (en de bijhorende mcr.microsoft.com/azure-sql-edge-containerimage), wordt de container gemaakt en gestart zodra de app-host start. Zie levenscyclus van containerresourcesvoor meer informatie.

Service Bus-emulatorcontainer configureren

Er zijn verschillende configuraties beschikbaar voor containerbronnen, bijvoorbeeld: u kunt de poorten van de container configureren of een wholistische JSON configuratie instellen die alles overschrijft.

Containerhostpoort voor Service Bus-emulator configureren

De Service Bus Emulator-container wordt standaard weergegeven wanneer deze is geconfigureerd door .NET.NET Aspire. De volgende eindpunten worden weergegeven:

Eindpunt Afbeelding Containerpoort Host-poort
emulator mcr.microsoft.com/azure-messaging/servicebus-emulator 5672 dynamisch
tcp mcr.microsoft.com/azure-sql-edge 1433 dynamisch

De poort waarop wordt geluisterd, is standaard dynamisch. Wanneer de container wordt gestart, wordt de poort toegewezen aan een willekeurige poort op de hostcomputer. Als u de eindpuntpoort wilt configureren, koppel de aanroepen met behulp van de containerresourcebouwer die wordt geleverd door de RunAsEmulator methode en vervolgens de WithHostPort(IResourceBuilder<AzureServiceBusEmulatorResource>, Nullable<Int32>), zoals in het volgende voorbeeld wordt weergegeven.

var builder = DistributedApplication.CreateBuilder(args);

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

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

Met de voorgaande code wordt het bestaande emulator-eindpunt van de Service Bus-emulatorcontainer geconfigureerd om te luisteren op poort 7777. De poort van de Service Bus-emulatorcontainer is toegewezen aan de hostpoort, zoals wordt weergegeven in de volgende tabel:

Eindpuntnaam Poorttoewijzing (container:host)
emulator 5672:7777
Configureer de configuratie van de Service Bus-emulatorcontainer JSON

De Service Bus-emulator genereert automatisch een configuratie die vergelijkbaar is met dit config.json-bestand van de geconfigureerde resources. U kunt dit gegenereerde bestand volledig overschrijven of de JSON configuratie bijwerken met een JsonNode weergave van de configuratie.

Als u een aangepast JSON-configuratiebestand wilt opgeven, roept u de methode WithConfigurationFile(IResourceBuilder<AzureServiceBusEmulatorResource>, String) aan:

var builder = DistributedApplication.CreateBuilder(args);

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

Met de voorgaande code wordt de Service Bus Emulator-container geconfigureerd voor het gebruik van een aangepast JSON configuratiebestand dat zich in ./messaging/custom-config.jsonbevindt. Als u in plaats daarvan specifieke eigenschappen in de standaardconfiguratie wilt overschrijven, roept u de methode WithConfiguration(IResourceBuilder<AzureServiceBusEmulatorResource>, Action<JsonNode>) aan:

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...

Met de voorgaande code wordt het UserConfig knooppunt opgehaald uit de standaardconfiguratie. Vervolgens worden de eigenschappen van de eerste wachtrij bijgewerkt om de MaxDeliveryCount in te stellen op 5, RequiresDuplicateDetection op trueen DefaultMessageTimeToLive op 2 hours.

Gezondheidscontroles van hostingintegratie

De Azure Service Bus hostingintegratie voegt automatisch een statuscontrole toe voor de Service Bus-resource. De statuscontrole controleert of de Service Bus actief is en of er een verbinding tot stand kan worden gebracht.

De hostingintegratie is afhankelijk van het 📦 AspNetCore.HealthChecks.AzureServiceBus NuGet-pakket.

Client integratie

Installeer het NuGet-pakket Aspire in het project waarin de client wordt gebruikt om aan de slag te gaan met de Azure-clientintegratie, dat wil zeggen het project voor de toepassing die gebruikmaakt van de Service Bus-client. De Service Bus-clientintegratie registreert een ServiceBusClient exemplaar dat u kunt gebruiken om te communiceren met Service Bus.

dotnet add package Aspire.Azure.Messaging.ServiceBus

Service Bus-client toevoegen

Roep in het Program.cs bestand van het clientgebruikte project de AddAzureServiceBusClient-extensiemethode aan op een IHostApplicationBuilder om een ServiceBusClient te registreren voor gebruik via de container voor afhankelijkheidsinjectie. De methode gebruikt een verbindingsnaamparameter.

builder.AddAzureServiceBusClient(connectionName: "messaging");

Hint

De parameter connectionName moet overeenkomen met de naam die wordt gebruikt bij het toevoegen van de Service Bus-resource in het app-hostproject. Met andere woorden, wanneer u AddAzureServiceBus aanroept en een naam opgeeft van messaging diezelfde naam moet worden gebruikt bij het aanroepen van AddAzureServiceBusClient. Zie Azure Service Bus bron toevoegenvoor meer informatie.

Vervolgens kunt u het ServiceBusClient exemplaar ophalen met behulp van afhankelijkheidsinjectie. Als u bijvoorbeeld de verbinding wilt ophalen uit een voorbeeldservice:

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

Voor meer informatie over afhankelijkheidsinjectie, zie .NET.

Client voor Service Bus met sleutel toevoegen

Er kunnen situaties zijn waarin u meerdere ServiceBusClient exemplaren met verschillende verbindingsnamen wilt registreren. Om keyed Service Bus-clients te registreren, gebruikt u de AddKeyedAzureServiceBusClient-methode:

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

Belangrijk

Wanneer u sleutelservices gebruikt, wordt verwacht dat uw Service Bus-resource twee benoemde bussen heeft geconfigureerd, één voor de mainBus en één voor de loggingBus.

Vervolgens kunt u de ServiceBusClient instanties ophalen via afhankelijkheidsinjectie. Als u bijvoorbeeld de verbinding wilt ophalen uit een voorbeeldservice:

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

Voor meer informatie over gesleutelde services, zie .NET afhankelijkheidsinjectie: Keyed Services.

Configuratie

De .NET AspireAzure Service Bus-integratie biedt meerdere opties voor het configureren van de verbinding op basis van de vereisten en conventies van uw project.

Een verbindingsreeks gebruiken

Wanneer u een verbindingsreeks uit de sectie ConnectionStrings configuratie gebruikt, kunt u de naam van de verbindingsreeks opgeven bij het aanroepen van de AddAzureServiceBusClient methode:

builder.AddAzureServiceBusClient("messaging");

Vervolgens wordt de verbindingsreeks opgehaald uit de ConnectionStrings configuratiesectie:

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

Zie de connectionString-documentatie voor meer informatie over het opmaken van deze verbindingsreeks.

Configuratieproviders gebruiken

De .NET AspireAzure Service Bus-integratie ondersteunt Microsoft.Extensions.Configuration. Het laadt de AzureMessagingServiceBusSettings vanuit de configuratie met behulp van de Aspire:Azure:Messaging:ServiceBus-key. Het volgende codefragment is een voorbeeld van een appsettings.json-bestand waarmee een aantal van de opties wordt geconfigureerd:

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

Voor het volledige Service Bus-clientintegratieschema JSON, zie Aspire.Azure. Messaging.ServiceBus/ConfigurationSchema.json.

Inline gedelegeerden gebruiken

U kunt ook de Action<AzureMessagingServiceBusSettings> configureSettings delegate doorgeven om enkele of alle opties inline in te stellen, bijvoorbeeld om tracering vanuit de code uit te schakelen.

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

U kunt de Azure.Messaging.ServiceBus.ServiceBusClientOptions ook instellen met behulp van de optionele parameter Action<ServiceBusClientOptions> configureClientOptions van de methode AddAzureServiceBusClient. Als u bijvoorbeeld het achtervoegsel van de ServiceBusClientOptions.Identifier user-agent header wilt instellen voor alle verzoeken die door deze client worden gedaan:

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

Gezondheidscontroles voor Client-integratie

Standaard stellen .NET.NET Aspire integraties gezondheidscontroles voor alle services in. Zie .NET.NET Aspire overzicht van integratiesvoor meer informatie.

De .NET AspireAzure Service Bus-integratie:

  • Hiermee wordt de statuscontrole toegevoegd wanneer AzureMessagingServiceBusSettings.DisableTracingfalseis, waarbij geprobeerd wordt verbinding te maken met de Service Bus.
  • Integreert met het /health HTTP-eindpunt, dat specificeert dat alle geregistreerde gezondheidscontroles moeten slagen voordat de app als gereed wordt beschouwd om verkeer te accepteren.

Waarneembaarheid en telemetrie

.NET .NET Aspire integraties automatisch configuraties voor logboekregistratie, tracering en metrische gegevens instellen, die ook wel bekend staan als de pijlers van waarneembaarheid. Zie .NET.NET Aspire overzicht van integratieintegratiesvoor meer informatie over de waarneembaarheid en telemetrie van integraties. Afhankelijk van de back-upservice ondersteunen sommige integraties mogelijk slechts enkele van deze functies. Sommige integraties ondersteunen bijvoorbeeld logboekregistratie en tracering, maar geen metrische gegevens. Telemetriefuncties kunnen ook worden uitgeschakeld met behulp van de technieken die worden weergegeven in de sectie Configuratie.

Loggen

De .NET AspireAzure Service Bus-integratie maakt gebruik van de volgende logboekcategorieën:

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

Naast het ophalen van Azure Service Bus aanvraagdiagnose voor mislukte aanvragen, kunt u latentiedrempels configureren om te bepalen welke geslaagde Azure Service Bus aanvraagdiagnose wordt geregistreerd. De standaardwaarden zijn 100 ms voor puntbewerkingen en 500 ms voor niet-puntbewerkingen.

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

Tracing

De .NET AspireAzure Service Bus-integratie verzendt de volgende traceringsactiviteiten met behulp van 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 tracering is momenteel in de previewfase, dus moet u de experimentele switch instellen zodat traceringen worden uitgezonden.

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

Zie Azure Service Bus: Gedistribueerde tracering en correlatie via Service Bus-berichtenvoor meer informatie.

Statistieken

De .NET AspireAzure Service Bus-integratie biedt momenteel geen ondersteuning voor metrische gegevens vanwege beperkingen met de Azure SDK.

Zie ook