HTTP, TCP veya Named-Pipe Kullanan Zaman Uyumsuz Senaryolar
Bu konu, HTTP, TCP veya adlandırılmış kanal kullanan çok iş parçacıklı isteklerle farklı zaman uyumsuz istek/yanıt senaryoları için etkinlikleri ve aktarımları açıklar.
Zaman Uyumsuz İstek/Hatasız Yanıtla
Bu bölümde, çok iş parçacıklı istemcilerle zaman uyumsuz istek/yanıt senaryosu için etkinlikler ve aktarımlar açıklanmaktadır.
Çağıran etkinliği döndürdüğünde beginCall
sonlanır ve endCall
döndürür. Geri arama çağrılırsa, geri arama döndürür.
Çağrılan etkinlik döndürdüğünde beginCall
, endCall
döndürdüğünde veya bu etkinlikten çağrıldıysa geri çağırma döndürdüğünde sonlanır.
Geri Çağırma Olmadan Zaman Uyumsuz İstemci
HTTP kullanılarak Yayma her İki Tarafta Da Etkindir
ise propagateActivity=true
, ProcessMessage hangi ProcessAction etkinliğinin aktarılıp aktarılamadığını belirtir.
HTTP tabanlı senaryolar için, gönderilecek ilk iletide ReceiveBytes çağrılır ve isteğin ömrü boyunca mevcuttur.
Yayma, HTTP kullanılarak İki Tarafta da Devre Dışı Bırakıldı
Her iki taraftaysa propagateActivity=false
, ProcessMessage aktarıldığı ProcessAction etkinliğini göstermez. Bu nedenle, yeni kimliği olan yeni bir geçici ProcessAction etkinliği çağrılır. Zaman uyumsuz yanıt ServiceModel kodundaki istekle eşleştiğinde, Etkinlik Kimliği yerel bağlamdan alınabilir. Gerçek ProcessAction etkinliği bu kimlikle aktarılabilir.
HTTP tabanlı senaryolar için, gönderilecek ilk iletide ReceiveBytes çağrılır ve isteğin ömrü boyunca mevcuttur.
Çağıran veya çağıran olduğunda propagateActivity=false
ve yanıt iletisi bir Eylem üst bilgisi içermediğinde zaman uyumsuz bir istemcide İşlem Eylemi etkinliği oluşturulur.
Yayma, TCP veya Adlandırılmış Kanal Kullanılarak her İki Tarafta Da Etkin
Adlandırılmış Kanal veya TCP tabanlı bir senaryo için, istemci açıldığında ReceiveBytes çağrılır ve bağlantının ömrü boyunca mevcuttur.
İlk görüntüye benzer şekilde, ise propagateActivity=true
ProcessMessage hangi ProcessAction etkinliğinin aktarılıp aktarılamadığını belirtir.
Yayma, TCP veya Adlandırılmış Kanal Kullanılarak İki Tarafta Da Devre Dışı Bırakıldı
Adlandırılmış Kanal veya TCP tabanlı bir senaryo için, istemci açıldığında ReceiveBytes çağrılır ve bağlantının ömrü boyunca mevcuttur.
İkinci görüntüye benzer şekilde, her iki taraftaysa propagateActivity=false
, ProcessMessage hangi ProcessAction etkinliğine aktarıldığına işaret etmez. Bu nedenle, yeni kimliği olan yeni bir geçici ProcessAction etkinliği çağrılır. Zaman uyumsuz yanıt ServiceModel kodundaki istekle eşleştiğinde, Etkinlik Kimliği yerel bağlamdan alınabilir. Gerçek ProcessAction etkinliği bu kimlikle aktarılabilir.
Geri Çağırma ile zaman uyumsuz istemci
Bu senaryo, geri çağırma ve için G ve A' etkinliklerini ve endCall
bunların içeri/dışarı aktarımlarını ekler.
Bu bölümde yalnızca ile propagateActivity
=true
HTTP kullanımı gösterilmektedir. Ancak, ek etkinlikler ve aktarımlar diğer durumlar için de geçerlidir (tcp propagateActivity
=false
veya adlandırılmış kanal kullanarak).
geri arama, istemci sonuçların hazır olduğunu bildirmek için kullanıcı kodunu çağırdığında yeni bir etkinlik (G) oluşturur. Kullanıcı kodu daha sonra endCall
geri arama içinde (Şekil 5'te gösterildiği gibi) veya geri arama dışında çağrılar (Şekil 6) . Hangi kullanıcı etkinliğinin endCall
çağrıldığı bilinmediğinden, bu etkinlik olarak etiketlenir A’
. A'nın A ile aynı veya A'dan farklı olması mümkündür.
Geri Çağırma ile Zaman Uyumsuz Sunucu
Kanal yığını, İleti Alma sırasında istemciyi geri çağırır: Bu işlemeye yönelik izlemeler ProcessRequest etkinliğinin kendisinde yayılır.
Zaman Uyumsuz İstek/Hatalarla Yanıtla
hata iletisi hataları sırasında endCall
alınır. Aksi takdirde, etkinlikler ve aktarımlar önceki senaryolara benzer.
Hataları olan veya Olmayan Zaman Uyumsuz Tek Yönlü
İstemciye yanıt veya hata döndürülmedi.