Sdílet prostřednictvím


DiagnosticSource.OnActivityImport(Activity, Object) Metoda

Definice

Přenese stav do aktivity z nějaké události nebo operace, například z příchozího požadavku, ke kterému došlo mimo proces.

public:
 virtual void OnActivityImport(System::Diagnostics::Activity ^ activity, System::Object ^ payload);
public virtual void OnActivityImport (System.Diagnostics.Activity activity, object? payload);
public virtual void OnActivityImport (System.Diagnostics.Activity activity, object payload);
abstract member OnActivityImport : System.Diagnostics.Activity * obj -> unit
override this.OnActivityImport : System.Diagnostics.Activity * obj -> unit
Public Overridable Sub OnActivityImport (activity As Activity, payload As Object)

Parametry

activity
Activity

Aktivita ovlivněná externí událostí.

payload
Object

Datová část, která představuje příchozí požadavek.

Poznámky

Pokud lokalita instrumentace vytvoří novou aktivitu v reakci na nějakou událost mimo proces, jako je například příchozí požadavek HTTP, OnActivityImport metoda umožní, aby web chtěl vytvořit novou aktivitu a přenést stav z příchozího požadavku na aktivitu.

Pokud je to možné, měla by to provést lokalita instrumentace, protože v lokalitě instrumentace existuje smlouva mezi Activity logikou příchozích požadavků. Web instrumentace ale nemůže zpracovat zásady. (Pokud se například provádí vzorkování, přesně které požadavky by se měly vzorkovat?) V těchto případech musí lokalita instrumentace zavolat zpět do systému protokolování a požádat ho o vyřešení zásad (například rozhodnout, jestli má být nastaven bit vzorkování aktivity). To je účel OnActivityImport metody. Je přiřazena aktivita a také objekt datové části, který představuje příchozí požadavek. Předplatitelé DiagnosticSource pak mají možnost tuto aktivitu podle potřeby aktualizovat.

Tato metoda se zřídka používá v lokalitách instrumentace (pouze lokality, které jsou na hranici procesu) a lokalita instrumetace implementuje některé výchozí zásady ( nějakým způsobem nastavuje aktivitu), a proto není nutné tuto metodu přepisovat, pokud je tato výchozí zásada v pořádku. Jinými slovy, tato metoda by měla být přepsána ve velmi vzácných (ale často důležitých) případech.

Všimněte si, že payload je zadaný jako Object tady, ale každý konkrétní instrumentační web a odběratel budou znát typ datové části, a proto ji v případě potřeby přetypuje a dekóduje.

Platí pro