Share via


MessageExtensions.ExtractActivity(Message, String) Methode

Definition

Erstellt Activity basierend auf dem Ablaufverfolgungskontext, der unter optionaler MessageAktivitätsnameNeu Activity mit Ablaufverfolgungskontext gespeichert ist

public static System.Diagnostics.Activity ExtractActivity (this Microsoft.Azure.ServiceBus.Message message, string activityName = default);
static member ExtractActivity : Microsoft.Azure.ServiceBus.Message * string -> System.Diagnostics.Activity
<Extension()>
Public Function ExtractActivity (message As Message, Optional activityName As String = Nothing) As Activity

Parameter

message
Message
activityName
String

Gibt zurück

Beispiele

async Task ProcessAsync()
{
   var message = await messageReceiver.ReceiveAsync();
   var activity = message.ExtractActivity();
   activity.Start();
   Logger.LogInformation($"Message received, Id = {Activity.Current.Id}")
   try 
   {
      // process message
   }
   catch (Exception ex)
   {
        Logger.LogError($"Exception {ex}, Id = {Activity.Current.Id}")
   }
   finally 
   {
        activity.Stop();
        // Activity is stopped, we no longer have it in Activity.Current, let's user activity now
        Logger.LogInformation($"Message processed, Id = {activity.Id}, Duration = {activity.Duration}")
   }
}

Beachten Sie, dass jedes Protokoll mit Currentgestempelt wird. ID, die in einem beliebigen geschachtelten Methodenaufruf (Synchronisierung oder asynchron) verwendet werden kann. Current Hierbei handelt es sich um einen Umgebungskontext, der mit asynchronen Methodenaufrufen fließt.

Hinweise

Der Ablaufverfolgungskontext wird verwendet, um Telemetriedaten zwischen Producer und Consumer zu korrelieren und durch die Eigenschaften "Diagnostic-Id" und "Correlation-Context" in UserPropertiesdargestellt.

Das .NET SDK fügt beim Senden von Nachrichten an den ServiceBus automatisch Kontext ein (wenn Diagnose durch das Ablaufverfolgungssystem aktiviert ist).

"Diagnostic-ID" identifiziert eindeutig den Vorgang, der eine Nachricht in die Warteschlange gestellt hat.

"Correlation-Context" ist eine durch Trennzeichen getrennte Liste von Stingschlüsselwertpaaren, die den optionalen Kontext für den Vorgang festlegen.

Wenn in der Nachricht kein Ablaufverfolgungskontext vorhanden ist, gibt diese Methode ohne übergeordnetes Element zurück Activity .

Zurückgegeben muss Activity gestartet werden, bevor es verwendet werden kann (siehe Beispiel unten).

Gilt für: