Aracılığıyla paylaş


HTTP, TCP veya Named-Pipe Kullanan Eşzamanlı Senaryolar

Bu konu başlığında, HTTP, TCP veya adlandırılmış kanal kullanan tek iş parçacıklı istemci ile farklı zaman uyumlu istek/yanıt senaryoları için etkinlikler ve aktarımlar açıklanmaktadır. Çok iş parçacıklı istekler hakkında daha fazla bilgi için bkz . HTTP, TCP veya Adlandırılmış Kanal Kullanan Zaman Uyumsuz Senaryolar.

Zaman Uyumlu İstek/Hatasız Yanıtla

Bu bölümde, tek iş parçacıklı istemci ile geçerli bir zaman uyumlu istek/yanıt senaryosu için etkinlikler ve aktarımlar açıklanmaktadır.

İstemci

Hizmet Uç Noktası ile İletişim Kurma

bir istemci oluşturulur ve açılır. Bu adımların her biri için ortam etkinliği (A), sırasıyla bir "İstemci Oluşturma" (B) ve "İstemciYi Aç" (C) etkinliğine aktarılır. Aktarılmakta olan her etkinlik için, serviceModel kodu yürütülene kadar ortam etkinliği bir geri aktarım olana kadar askıya alınır.

Hizmet Uç Noktasına İstekTe Bulunma

Ortam etkinliği bir "ProcessAction" (D) etkinliğine aktarılır. Bu etkinlikte bir istek iletisi gönderilir ve bir yanıt iletisi alınır. Denetim kullanıcı koduna döndüğünde etkinlik sona erer. Bu zaman uyumlu bir istek olduğundan, ortam etkinliği denetim dönene kadar askıya alınıyor.

Hizmet Uç Noktası ile İletişimi Kapatma

İstemcinin yakın etkinliği (I) ortam etkinliğinden oluşturulur. Bu, yeni ve açık ile aynıdır.

Sunucu

Hizmet Konağı Ayarlama

ServiceHost'un yeni ve açık etkinlikleri (N ve O), ortam etkinliğinden (M) oluşturulur.

Her dinleyici için bir ServiceHost açarak bir dinleyici etkinliği (P) oluşturulur. Dinleyici etkinliği verileri almak ve işlemek için bekler.

Kabloda Veri Alma

Veriler kabloya ulaştığında, alınan verileri işlemek için henüz mevcut değilse (Q) bir "ReceiveBytes" etkinliği oluşturulur. Bu etkinlik, bir bağlantı veya kuyruktaki birden çok ileti için yeniden kullanılabilir.

ReceiveBytes etkinliği, SOAP eylem iletisi oluşturmak için yeterli veriye sahipse bir ProcessMessage etkinliği (R) başlatır.

R etkinliğinde ileti üst bilgileri işlenir ve activityID üst bilgisi doğrulanır. Bu üst bilgi varsa, etkinlik kimliği ProcessAction etkinliğine ayarlanır; aksi takdirde yeni bir kimlik oluşturulur.

Çağrı işlendiğinde ProcessAction etkinliği (S) oluşturulur ve öğesine aktarılır. Bu etkinlik, kullanıcı kodunu (T) yürütme ve varsa yanıt iletisini gönderme de dahil olmak üzere gelen iletiyle ilgili tüm işlemler tamamlandığında sona erer.

Hizmet Ana Bilgisayarını Kapatma

ServiceHost'un yakın etkinliği (Z) ortam etkinliğinden oluşturulur.

Diagram showing synchronous scenarios: HTTP, TCP, or named pipes.

<A: name> içinde, A önceki metindeki ve tablo 3'teki etkinliği açıklayan bir kısayol simgesidir. Name etkinliğin kısaltılmış bir adıdır.

hem istemcide hem de hizmette İşlem Eylemi aynı etkinlik kimliğine sahipse propagateActivity=true.

Zaman Uyumlu İstek/Hatalarla Yanıtla

Önceki senaryodaki tek fark, SOAP hata iletisinin yanıt iletisi olarak döndürülür. ise propagateActivity=true, istek iletisinin etkinlik kimliği SOAP hata iletisine eklenir.

Zaman Uyumlu Tek Yönlü Hatasız

İlk senaryodaki tek fark, sunucuya hiçbir ileti döndürülmeyecek olmasıdır. HTTP tabanlı protokoller için istemciye bir durum (geçerli veya hata) döndürülür. Bunun nedeni HTTP'nin WCF protokol yığınının parçası olan istek-yanıt semantiğine sahip tek protokol olmasıdır. TCP işleme WCF'den gizlendiğinden istemciye onay gönderilmez.

Hatalarla Zaman Uyumlu Tek Yönlü

İleti işlenirken bir hata oluşursa (Q veya üzeri), istemciye bildirim döndürülür. Bu, "Zaman Uyumlu Tek Yönlü Hatasız" senaryosuyla aynıdır. Hata iletisi almak istiyorsanız Tek Yönlü senaryo kullanmamalısınız.

Çift Yönlü

Önceki senaryolarla arasındaki fark, istemcinin Asenkron senaryolara benzer şekilde ReceiveBytes ve ProcessMessage etkinliklerini oluşturduğu bir hizmet olarak davranmasıdır.