Etkinlik Kimliği Yayma
ServiceModel etkinlik izleme etkinleştirildiğinde (ServiceModel yayma) veya devre dışı bırakıldığında (Kullanıcıdan Kullanıcıya etkinlik yayma) yayma gerçekleşir.
ServiceModel Etkinlik İzleme Etkin
ServiceModel ActivityTracing etkinleştirilirse, ProcessAction etkinlikleri arasında yayma gerçekleşir.
Sunucu
propagateActivity
Özniteliği hem istemcide hem de sunucuda olarak ayarlandığındatrue
, sunucudaki etkinliğin ProcessAction
kimliği yayılan ActivityId
ileti üst bilgisindeki kimlikle aynıdır.
İletide üst bilgi olmadığında ActivityId
(istemcide propagateActivity
=false
) veya sunucudayken propagateActivity
=false
sunucu yeni bir etkinlik kimliği oluşturur.
İstemci
İstemci zaman uyumlu olarak tek iş parçacıklıysa, istemci istemci veya sunucudaki ayarlarını propagateActivity
dikkate almaz. Bunun yerine, yanıt istek etkinliğinde işlenir. İstemci, istemcide zaman uyumsuz veya zaman uyumlu çok iş parçacıklıysa propagateActivity
=true
ve sunucu tarafından gönderilen iletide bir etkinlik kimliği üst bilgisi varsa, istemci etkinlik kimliğini iletiden alır ve yayılan etkinlik kimliğini içeren İşlem Eylemi etkinliğine aktarır. Aksi takdirde, istemci İşlem İletisi etkinliğinden yeni bir İşlem Eylemi etkinliğine aktarır. Bu ek aktarım, tutarlılık için yeni bir İşlem Eylemi etkinliğine yapılır. İstemci, bu etkinliğin içinde, iş parçacığı yanıt iletisi işleme için ayrıldığında beginCall etkinliğinin etkinlik kimliğini yerel iş parçacığı bağlamından alır. Ardından ilk İşlem Eylemi etkinliğine aktarır.
İstemci çift yönlüyse, istemci iletiyi alırken sunucu olarak davranır.
Hata İletilerinde Yayma
Geçerli ve hata iletilerini işlemede fark yoktur. ise propagateActivity
=true
, SOAP hata iletisi üst bilgilerine eklenen etkinlik kimliği ortam etkinliğiyle aynıdır.
ServiceModel Etkinlik İzleme Devre Dışı
ServiceModel ActivityTracing devre dışı bırakılırsa, kullanıcı kodu etkinlikleri arasında ServiceModel etkinliklerine gitmeden doğrudan yayma gerçekleşir. Kullanıcı tanımlı etkinlik kimliği, ileti etkinliği kimliği üst bilgisi aracılığıyla da yayılır.
ServiceModel propagateActivity
=true
izleme dinleyicisi için ve ActivityTracing
=off
ise (serviceModel'de izlemenin etkinleştirilip etkinleştirilmediğine bakılmaksızın), istemcide veya sunucuda aşağıdakiler gerçekleşir:
İşlem isteğinde veya yanıt gönderirken, TLS'deki etkinlik kimliği bir ileti oluşturulana kadar kullanıcı kodundan yayılır. İleti gönderilmeden önce iletiye bir etkinlik kimliği üst bilgisi de eklenir.
İstek alınırken veya yanıt alınırken, alınan ileti nesnesi oluşturulur oluşturulmaz etkinlik kimliği ileti üst bilgisinden alınır. TLS'deki etkinlik kimliği, kullanıcı koduna ulaşılana kadar ileti kapsamdan kaybolur kaybolmaz yayılır.
Bu eylemler, yayma açıksa kullanıcı izlemelerinin aynı etkinlikte görüneceğini garanti eder. Ancak, ServiceModel izlemelerinde hiçbir garanti yapmaz. ServiceModel izlemeleri bir kullanıcı kodu etkinliğinde yalnızca bu izlemelerin işlenmesi, kullanıcı kodu etkinliğinin ayarlandığı aynı iş parçacığında yürütülürse gerçekleşir.
Genel olarak, ServiceModel izlemeleri aşağıdaki yerlerde gözlemlenebilir:
ServiceModel izleme devre dışı bırakılırsa, tüm yayılan izlemeler kullanıcı etkinliklerinde görünür. Yayma hem sunucuda hem de istemcide etkinleştirilirse, bu izlemeler aynı etkinlikte olur.
ServiceModel izleme etkinleştirildiyse ancak ActivityTracing devre dışı bırakıldıysa, her iki uçta da yayma etkinleştirildiyse kullanıcı izlemeleri aynı etkinlikte görünür. ServiceModel izlemeleri, etkinliğin ilk ayarlandığı kullanıcı kodu işleme ile aynı iş parçacığında gerçekleşmediği sürece varsayılan 0000 etkinliğinde görünür.
Hem ServiceModel izleme hem de ActivityTracing etkinleştirilirse, kullanıcı tanımlı etkinliklerde kullanıcı izlemeleri ve ServiceModel izlemeleri ServiceModel tanımlı etkinliklerde görünür. Yayma, ServiceModel düzeyinde gerçekleşir.