Aracılığıyla paylaş


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.