Aracılığıyla paylaş


Reliable Messaging Protocol 1.0 sürümü

Bu konu, HTTP aktarımı kullanılarak birlikte çalışma için gereken WS-Reliable Mesajlaşma Şubat 2005 (sürüm 1.0) protokolü için Windows Communication Foundation (WCF) uygulama ayrıntılarını kapsar. WCF, bu konuda açıklanan kısıtlamalar ve açıklamalar ile WS-Reliable Mesajlaşma belirtimini izler. WS-ReliableMessaging sürüm 1.0 protokollerinin WinFX'ten başlayarak uygulandığını unutmayın.

WS-Reliable Mesajlaşma Şubat 2005 protokolü ReliableSessionBindingElement tarafından WCF'de uygulanır.

Kolaylık sağlamak için konu başlığı altında aşağıdaki roller kullanılır:

  • Başlatıcı: WS-Reliable İleti dizisi oluşturma işlemini başlatan istemci

  • Yanıtlayıcı: Başlatıcının isteklerini alan hizmet

Bu belge aşağıdaki tabloda yer alan ön ekleri ve ad alanlarını kullanır.

Önek Namespace
wsrm http://schemas.xmlsoap.org/ws/2005/02/rm
netrm http://schemas.microsoft.com/ws/2006/05/rm
s http://www.w3.org/2003/05/soap-envelope
wsa http://schemas.xmlsoap.org/ws/2005/08/addressing
wsse http://docs.oasis-open.org/wss/2004/01/oasis-200401-wssecurity-secext-1.0.xsd

Mesajlaşma

Sekans Kurma Mesajları

WCF CreateSequence ve CreateSequenceResponse mesajlarını, güvenilir bir mesaj dizisi oluşturmak için uygular. Aşağıdaki kısıtlamalar geçerlidir:

  • B1101: WCF Başlatıcısı, CreateSequence mesajında isteğe bağlı Expires öğesini oluşturmaz veya CreateSequence mesajı Offer öğesi içerdiğinde, Expires öğesindeki isteğe bağlı Offer öğesini oluşturmaz.

  • B1102: WCFCreateSequence, iletiye Responder erişirken varsa her iki öğeyi de Expires gönderir ve alır, ancak değerlerini kullanmaz.

WS-Reliable Mesajlaşma, bir oturum oluşturan iki zıt bağıntılı diziyi kurma mekanizması olan Offer mekanizmasını tanıtır.

  • R1103: CreateSequence bir Offer öğesi içeriyorsa, Reliable Messaging Yanıtlayıcı, diziyi kabul ederek içinde bir CreateSequenceResponse öğesi bulunan wsrm:Accept ile yanıt vermeli ve böylece iki bağıntılı ters diziyi oluşturmalı veya CreateSequence isteğini reddetmelidir.

  • R1104: SequenceAcknowledgement ve ters sırada akan uygulama iletileri, ReplyTo uç nokta başvurusuna CreateSequencegönderilmelidir.

  • R1105: AcksTo ve ReplyTo içindeki CreateSequence uç nokta referansları, oktette uyumlu adres değerlerine sahip olmalıdır.

    WCF Yanıtlayıcısı, URI bölümünün AcksTo ve ReplyTo EPR'lerle aynı olduğunu doğrulamadan önce bir dizi oluşturur.

  • R1106: AcksTo ve ReplyTo içindeki CreateSequence uç nokta başvuruları, referans parametrelerinin aynı kümesine sahip olmalıdır.

    WCF, AcksTo ve ReplyTo üzerindeki [başvuru parametrelerinin] CreateSequence aynı olduğunu varsayar ve onay mesajları ile karşıt sıra iletileri için ReplyTo uç nokta başvurusundaki [başvuru parametrelerini] kullanır.

  • R1107: Offer mekanizması kullanılarak iki ters dizi oluşturulduğunda, ve ters diziler üzerinde akan uygulama mesajları SequenceAcknowledgement uç nokta referansına ReplyTo gönderilmelidir.

  • R1108: Teklif mekanizması kullanılarak iki zıt dizi oluşturulduğunda, [address] öğesinin wsrm:AcksTo Endpoint Reference alt öğesinin wsrm:Accept özelliği, CreateSequenceResponse öğesinin hedef URI'siyle bayt bazında eşleşmelidir.

  • R1109: Offer mekanizması kullanılarak iki zıt dizi kurulduğunda, başlatıcı tarafından gönderilen iletiler ve yanıtlayıcının iletilere verdiği onaylar aynı Uç Nokta Referansına gönderilmelidir.

    WCF, Başlatıcı ile Yanıtlayıcı arasında güvenilir oturumlar oluşturmak için WS-Reliable Mesajlaşma kullanır. WCF'nin WS-Reliable Mesajlaşma uygulaması tek yönlü, istek-yanıt ve tam çift yönlü mesajlaşma desenleri için güvenilir oturum sağlar. üzerindeki OfferCreateSequence/ WS-Reliable Mesajlaşma CreateSequenceResponse mekanizması, bağıntılı iki ters dizi oluşturmanıza olanak tanır ve tüm ileti uç noktaları için uygun bir oturum protokolü sağlar. WCF, oturum bütünlüğü için uçtan uca koruma da dahil olmak üzere böyle bir oturum için güvenlik garantisi sağladığından, aynı tarafa yönelik iletilerin aynı hedefe vardığından emin olmak pratiktir. Uygulama iletilerine sıralama onaylarını birleştirerek gönderim yapmayı da sağlar. Bu nedenle, R1104, R1105 ve R1108 kısıtlamaları WCF için geçerlidir.

Bir ileti örneği CreateSequence.

<s:Envelope>
  <s:Header>
    <a:Action s:mustUnderstand="1">
      http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequence
    </a:Action>
    <a:ReplyTo>
      <a:Address>
         http://Business456.com/clientA
      </a:Address>
    </a:ReplyTo>
    <a:MessageID>
      urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
    </a:MessageID>
    <a:To s:mustUnderstand="1">
      http://Business456.com/clientA
    </a:To>
  </s:Header>
  <s:Body>
    <wsrm:CreateSequence>
      <wsrm:AcksTo>
       <wsa:Address>
         http://Business456.com/clientA
       </wsa:Address>
     </wsrm:AcksTo>
     <wsrm:Offer>
      <wsrm:Identifier>
        urn:uuid:0afb8d36-bf26-4776-b8cf-8c91fddb5496
      </wsrm:Identifier>
     </wsrm:Offer>
   </wsrm:CreateSequence>
  </s:Body>
</s:Envelope>

Bir ileti örneği CreateSequenceResponse.

<s:Envelope>
  <s:Header>
    <a:Action s:mustUnderstand="1">
      http://schemas.xmlsoap.org/ws/2005/02/rm/CreateSequenceResponse
    </a:Action>
    <a:RelatesTo>
      urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
    </a:RelatesTo>
    <a:To s:mustUnderstand="1">
      http://Business456.com/clientA
    </a:To>
  </s:Header>
  <s:Body>
   <wsrm:CreateSequenceResponse>
    <Identifier>
     urn:uuid:eea0a36c-b38a-43e8-8c76-2fabe2d76386
    </Identifier>
    <Accept>
    <AcksTo>
      <a:Address>
        http://BusinessABC.com/serviceA
      </a:Address>
    </AcksTo>
    </Accept>
   </wsrm:CreateSequenceResponse>
  </s:Body>
</s:Envelope>

Sıra

Sıralara uygulanan kısıtlamaların listesi aşağıdadır:

  • B1201:WCF, 'nin en büyük kapsayıcı değeri olan 9223372036854775807'den xs:longyüksek olmayan sıra numaraları oluşturur ve bu sayılara erişir.

  • B1202:WCF her zaman eylem URI'sini http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessageiçeren boş gövdeli bir son ileti oluşturur.

  • B1203: WCF, eylem URI'si LastMessage olmadığı sürece http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage öğesini içeren ve Sıra üst bilgisine sahip bir mesaj alır ve teslim eder.

Sıralama Başlığı Örneği.

<wsrm:Sequence>
  <wsrm:Identifier>
    urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
  </wsrm:Identifier>
  <wsrm:MessageNumber>
    10
  </wsrm:MessageNumber>
  <wsrm:LastMessage/>
 </wsrm:Sequence>

AckRequested Üst Bilgisi

WCF, AckRequested Header'ı canlı tutma mekanizması olarak kullanır. WCF isteğe bağlı MessageNumber öğeyi oluşturmaz. AckRequested öğesini içeren bir MessageNumber başlığı ile alınan bir ileti durumunda, WCF aşağıdaki örnekte gösterildiği gibi MessageNumber öğesinin değerini yoksayar.

<wsrm:AckRequested>
  <wsrm:Identifier>
    urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
  </wsrm:Identifier>
</wsrm:AckRequested>

SequenceAcknowledgement Üst Bilgisi

WCF, WS-Reliable Mesajlaşmada sağlanan dizilim onayları için üstüste bindirme mekanizmasını kullanır.

  • R1401: Mekanizma kullanılarak Offer iki ters dizi oluşturulduğunda, SequenceAcknowledgement üst bilgi istenen alıcıya iletilen herhangi bir uygulama iletisine eklenebilir.

  • B1402: WCF'nin herhangi bir sıralı ileti almadan önce bir onay oluşturması gerektiğinde (örneğin, bir AckRequested iletiyi karşılamak için), WCF aşağıdaki örnekte gösterildiği gibi 0-0 aralığını içeren bir SequenceAcknowledgement üst bilgi oluşturur.

    <wsrm:SequenceAcknowledgement>
      <wsrm:Identifier>
        urn:uuid:addabbbf-60cb-44d3-8c5b-9e0841629a36
      </wsrm:Identifier>
      <wsrm:AcknowledgementRange Upper="0" Lower="0"/>
    </wsrm:SequenceAcknowledgement>
    
  • B1403: WCF, SequenceAcknowledgement öğesi içeren üst bilgiler oluşturmazNack, fakat Nack öğelerini destekler.

WS-ReliableMessaging Hataları

aşağıda, WS-Reliable Mesajlaşma hatalarının WCF uygulamasına uygulanan kısıtlamaların listesi yer alıyor:

  • B1501: WCF hata oluşturmaz MessageNumberRollover .

  • B1502:WCF uç noktası, belirtimde açıklandığı gibi hatalar oluşturabilir CreateSequenceRefused .

  • B1503:Hizmet uç noktası bağlantı sınırına ulaştığında ve yeni bağlantıları işleyemediğinde, WCF aşağıdaki örnekte gösterildiği gibi ek CreateSequenceRefused bir hata alt kodu netrm:ConnectionLimitReachedoluşturur.

    <s:Envelope>
      <s:Header>
        <wsa:Action>
          http://schemas.xmlsoap.org/ws/2005/08/addressing/fault
        </wsa:Action>
      </s:Header>
      <s:Body>
        <s:Fault>
          <s:Code>
            <s:Value>
              s:Receiver
            </s:Value>
            <s:Subcode>
              <s:Value>
                wsrm:CreateSequenceRefused
              </s:Value>
              <s:Subcode>
                <s:Value>
                  netrm:ConnectionLimitReached
                </s:Value>
              </s:Subcode>
            </s:Subcode>
          </s:Code>
          <s:Reason>
            <s:Text xml:lang="en">
              [Reason]
            </s:Text>
          </s:Reason>
        </s:Fault>
      </s:Body>
    </s:Envelope>
    

WS-Addressing Hataları

WS-Reliable Mesajlaşma WS-Adresleme kullandığından, WCF WS-Reliable Mesajlaşma uygulaması WS-Addressing hatalar oluşturabilir. Bu bölüm, WCF'nin WS-Reliable Mesajlaşma katmanında açıkça oluşturduğu WS-Addressing hatalarını kapsar:

  • B1601: WCF, aşağıdakilerden biri doğru olduğunda "Mesaj Adresleme Başlığı Gereklidir" hatasını üretir:

    • İletide bir Sequence başlık ve bir Action başlık eksik.

    • Bir CreateSequence iletinin MessageId üst bilgi kısmı eksik.

    • Bir CreateSequence iletinin ReplyTo üst bilgi kısmı eksik.

  • B1602: WCF, Sequence üst bilgisi eksik olan ve WS-Reliable Mesajlaşma belirtiminde tanınmayan bir Action üst bilgisi içeren bir mesaja yanıt olarak "Eylem Desteklenmiyor" hatasını oluşturur.

  • B1603: WCF, iletinin CreateSequence adresleme üst bilgilerinin incelenmesine göre uç noktanın sırayı işlemediğini belirtmek için "Uç Nokta Kullanılamıyor" hatasını oluşturur.

Protokol Oluşturma

WS-Addressing ile kompozisyon

WCF, WS-Addressing'in iki sürümünü destekler: WS-Addressing 2004/08 [WS-ADDR] ve W3C WS-Addressing 1.0 Önerileri [WS-ADDR-CORE] ve [WS-ADDR-SOAP].

WS-Reliable Mesajlaşma belirtimi yalnızca WS-Addressing 2004/08'den bahsedse de, kullanılacak WS-Addressing sürümünü kısıtlamaz. WCF için geçerli olan kısıtlamaların listesi aşağıdadır:

  • R2101:Hem WS-Addressing 2004/08 hem de WS-Addressing 1.0, WS-Reliable Mesajlaşma ile kullanılabilir.

  • R2102:Belirli bir WS-Reliable Mesajlaşma dizisi veya mekanizma kullanılarak wsrm:Offer bağıntılı bir çift ters dizi boyunca tek bir WS-Addressing sürümü kullanılmalıdır.

SOAP ile kompozisyon

WCF, WS-Reliable Mesajlaşma ile hem SOAP 1.1 hem de SOAP 1.2 kullanımını destekler.

WS-Security ve WS-SecureConversation ile kompozisyon

WCF, güvenli Aktarım (HTTPS), WS-Security ile oluşturma ve WS-Secure Konuşma ile oluşturma kullanarak WS-Reliable Mesajlaşma dizileri için koruma sağlar. WCF için geçerli olan kısıtlamaların listesi aşağıdadır:

  • R2301: WCF, bireysel iletilerin bütünlüğü ve gizliliğine ek olarak bir WS-Reliable mesajlaşma dizisinin bütünlüğünü korumak için WS-Secure Konuşma'nın kullanılmasını gerektirir.

  • R2302:AWS-Secure Konuşma oturumu, WS-Reliable Mesajlaşma dizileri oluşturulmadan önce kurulmalıdır.

  • R2303: WS-Reliable Mesajlaşma dizisinin ömrü WS-Secure Konuşma oturumunun ömrünü aşarsa, SecurityContextToken WS-Secure Konuşma kullanılarak kurulan, ilgili WS-Secure Konuşma Yenileme bağlaması kullanılarak yenilenmelidir.

  • B2304:WS-Reliable Mesajlaşma dizisi veya bir çift bağıntılı ters dizi her zaman tek bir WS-SecureConversation oturumuna bağlıdır.

    WCF kaynağı, iletinin wsse:SecurityTokenReference öğe genişletilebilirlik bölümünde CreateSequence öğesini oluşturur.

  • R2305:WS-Secure Konuşma ile bileşik oluşturulduğunda, bir CreateSequence mesaj wsse:SecurityTokenReference öğesini içermelidir.

WS-Reliable Mesajlaşma WS-Policy Onaylama

WCF, uç noktaların yeteneklerini tanımlamak için WS-Reliable Mesajlaşma WS-Policy Doğrulama wsrm:RMAssertion kullanır. WCF için geçerli olan kısıtlamaların listesi aşağıdadır:

  • B3001: WCF öğelere wsrm:RMAssertion WS-Policy Onay ekler wsdl:binding . WCF, wsdl:binding ve wsdl:port öğelerine ekleri destekler.

  • B3002: WCF, WS-Reliable Mesajlaşma onayının aşağıdaki isteğe bağlı özelliklerini destekler ve WCFReliableMessagingBindingElement üzerinde bunlar üzerinde denetim sağlar:

    • wsrm:InactivityTimeout

    • wsrm:AcknowledgementInterval

    Aşağıda bir örnek verilmiştir.

    <wsrm:RMAssertion>
      <wsrm:InactivityTimeout Milliseconds="600000" />
      <wsrm:AcknowledgementInterval Milliseconds="200" />
    </wsrm:RMAssertion>
    

Akış Denetimi WS-Reliable Mesajlaşma Uzantısı

WCF, sıralı ileti akışı üzerinde isteğe bağlı ek daha sıkı denetim sağlamak için WS-Reliable Mesajlaşma genişletilebilirliğini kullanır.

ReliableSessionBindingElement.FlowControlEnabled özelliği true olarak ayarlanarak akış denetimi etkinleştirilir. WCF için geçerli olan kısıtlamaların listesi aşağıdadır:

  • B4001: Güvenilir Mesajlaşma Akış Kontrolü etkinleştirildiğinde, WCF, üst bilginin öğe genişletilebilirliğinde netrm:BufferRemaining başlığı içinde bir SequenceAcknowledgement öğesi oluşturur.

  • B4002: Reliable Messaging Flow Control etkinleştirildiğinde, WCF aşağıdaki örnekte gösterildiği gibi netrm:BufferRemaining üst bilgide SequenceAcknowledgement öğesinin bulunmasını gerektirmez.

    <wsrm:SequenceAcknowledgement>
      <wsrm:Identifier>
        http://fabrikam123.com/abc
      </wsrm:Identifier>
      <wsrm:AcknowledgementRange Upper="1" Lower="1"/>
      <netrm:BufferRemaining>
        8
      </netrm:BufferRemaining>
    </wsrm:SequenceAcknowledgement>
    
  • B4003: WCF, netrm:BufferRemaining öğesini, Güvenilir Mesajlaşma Hedefinin arabelleğe alabileceği yeni ileti sayısını göstermek için kullanır.

  • B4004:WCF Reliable Messaging Hizmeti, Reliable Messaging hedef uygulaması iletileri hızla alamadığında iletilen iletilerin sayısını kısıtlar. Reliable Messaging hedefi iletileri arabelleğe alır ve öğenin değeri 0'a düşer.

  • B4005: WCF, 0 ile 4096 (dahil) arasında tamsayı değerleri oluşturur netrm:BufferRemaining ve 0 ile xs:int'nin maxInclusive değeri 214748364 dahil olmak üzere tamsayı değerlerini okur.

İleti Değişimi Desenleri

Bu bölümde, farklı İleti Değişimi Desenleri için WS-Reliable Mesajlaşma kullanıldığında WCF'nin davranışı açıklanmaktadır. Her İleti Değişimi Düzeni için aşağıdaki iki dağıtım senaryosu dikkate alınır:

  • Adreslenemeyen Başlatıcı: Başlatıcı güvenlik duvarının arkasındadır; Yanıtlayıcı, yalnızca HTTP yanıtlarında Initiator'a ileti teslim edebilir.

  • Adreslenebilir Başlatıcı: Hem Başlatıcı hem de Yanıtlayıcı HTTP isteklerini alabilir; diğer bir ifadeyle, iki ters HTTP bağlantısı kurulabilir.

Tek yönlü, Adreslenebilir Olmayan Başlatıcı

Bağlayıcılık

WCF, bir HTTP kanalı üzerinden tek bir sıra kullanarak tek yönlü bir ileti değişimi düzeni sağlar. WCF, RMS'den RMD'ye tüm iletileri iletmek için HTTP isteklerini ve RMD'den RMS'ye tüm iletileri iletmek için HTTP yanıtını kullanır.

CreateSequence Exchange

WCF Başlatıcısı, teklif içermeyen bir CreateSequence ileti oluşturur. WCF Yanıtlayıcı, CreateSequence ile ilişkilendirilmiş bir teklif olmadığından emin olduktan sonra bir dizi oluşturur. WCF Yanıtlayıcısı CreateSequence isteğine bir CreateSequenceResponse iletiyle yanıt verir.

Dizi Onayı

WCF Başlatıcısı, CreateSequence mesajı ve hata mesajları hariç tüm mesajların onaylarını işler. WCF Yanıtlayıcısı, hem dizilere hem de AckRequested iletilere yanıt olarak her zaman bağımsız bir onay üretir.

TerminateSequence iletisi

WCF, TerminateSequence öğesine tek yönlü bir işlem olarak davranır; bu, HTTP yanıtının boş bir gövdesi ve HTTP 202 durum koduna sahip olduğu anlamına gelir.

Tek Yönlü, Adreslenebilir Başlatıcı

Bağlayıcılık

WCF, bir gelen ve giden Http kanalı üzerinden tek bir sıra kullanarak tek yönlü bir ileti değişimi düzeni sağlar. WCF, tüm iletileri iletmek için HTTP isteklerini kullanır. Tüm HTTP yanıtları boş bir gövdeye ve HTTP 202 durum koduna sahiptir.

CreateSequence Exchange

WCF Başlatıcısı, teklif içermeyen bir CreateSequence ileti oluşturur. WCF Yanıtlayıcısı, bir dizi oluşturmadan önce CreateSequence öğesinin herhangi bir teklifi bulunmadığından emin olur. WCF Yanıtçısı, CreateSequenceResponse mesajını ReplyTo uç nokta referansı ile adreslenen bir HTTP isteğine iletir.

Çift yönlü, Adreslenebilir Başlatıcı

Bağlayıcılık

WCF, bir gelen ve bir giden HTTP kanalı üzerinden iki sıra kullanan tamamen zaman uyumsuz iki yönlü mesaj alışverişi modeli sağlar. WCF, tüm iletileri iletmek için HTTP isteklerini kullanır. Tüm HTTP yanıtları boş bir gövdeye ve HTTP 202 durum koduna sahiptir.

CreateSequence Exchange

WCF Başlatıcısı teklif içeren bir CreateSequence ileti oluşturur. WCF Yanıtlayıcısı, bir dizi oluşturmadan önce CreateSequence'ın bir teklife sahip olmasını sağlar. WCF, HTTP isteğinde CreateSequenceResponse'yı CreateSequence'nin ReplyTo uç nokta referansına gönderir.

Sıra Ömrü

WCF, iki diziyi tam çift yönlü bir oturum olarak ele alır.

Bir sırayı etkileyen bir hata oluşturulduğunda, WCF, uzak uç noktanın her iki sırada da hata vermesini bekler. Bir sıradaki hatayı okuduktan sonra, WCF her iki sırayı da hataya geçirir.

WCF giden sırasını kapatabilir ve gelen dizisinde iletileri işlemeye devam edebilir. Buna karşılık, WCF gelen sıranın kapanışını işleyebilir ve giden ardışık düzeninde ileti göndermeyi sürdürebilir.

İstek-Yanıt, Adreslenemeyen Başlatıcı

Bağlayıcılık

WCF, bir HTTP kanalı üzerinden iki dizi kullanarak tek yönlü ve istek-yanıt iletisi değişim düzeni sağlar. WCF, istek dizisinin iletilerini iletmek için HTTP isteklerini ve yanıt dizisinin iletilerini iletmek için HTTP yanıtlarını kullanır.

CreateSequence Exchange

WCF Başlatıcısı teklif içeren bir CreateSequence ileti oluşturur. WCF Yanıtlayıcısı, bir dizi oluşturmadan önce CreateSequence'ın bir teklife sahip olmasını sağlar. WCF Yanıtlayıcısı CreateSequence isteğine bir CreateSequenceResponse iletiyle yanıt verir.

Tek Yönlü İleti

Tek yönlü ileti değişim protokollerini başarıyla tamamlamak için WCF Başlatıcısı HTTP isteğinde bir istek dizisi iletisi iletir ve HTTP yanıtında tek başına SequenceAcknowledgement bir ileti alır. , SequenceAcknowledgement iletilen iletiyi kabul etmelidir.

WCF Yanıtlayıcısı isteği bir onay, hata veya boş gövde ve HTTP 202 durum koduyla yanıtlayabilir.

İki Yönlü İletiler

İki yönlü ileti değişim protokollerini başarıyla tamamlamak için, WCF Başlatıcısı HTTP isteğinde bir istek dizisi iletisi iletir ve HTTP yanıtında bir yanıt dizisi iletisi alır. Yanıt, iletilen istek dizisi iletisini onaylayıcı bir SequenceAcknowledgement taşımalıdır.

WCF Yanıtlayıcısı isteği bir uygulama yanıtı, bir hata veya boş gövdeli bir yanıt ve HTTP 202 durum koduyla yanıtlayabilir.

Tek yönlü iletilerin varlığı ve uygulama yanıtlarının zamanlaması nedeniyle, istek dizisi iletisinin sıra numarası ile yanıt iletisinin sıra numarası arasında bağıntı yoktur.

Yanıtları Yeniden Deneme

WCF, iki yönlü ileti değişim protokolü bağıntısı için HTTP istek-yanıt bağıntısını kullanır. Bu nedenle, WCF Başlatıcısı istek dizisi iletisi onaylandığında değil, HTTP yanıtı bir onay, kullanıcı iletisi veya hata taşıdığında istek dizisi iletisini yeniden denemeyi durdurmaz. WCF Yanıtlayıcısı, yanıtın bağlantılı olduğu isteğin HTTP talebi kısmında yanıtları yeniden dener.

LastMessage Exchange

WCF Başlatıcısı, HTTP isteği bacağında boş gövdeli bir son ileti oluşturur ve iletir. WCF bir yanıt gerektirir, ancak yanıt mesajını göz ardı eder. WCF Yanıtlayıcısı, yanıt dizisinin boş gövdeli son iletisiyle istek dizisinin boş gövdeli son iletisini yanıtlar.

WCF Yanıtlayıcı, harekete geçirme URI'si http://schemas.xmlsoap.org/ws/2005/02/rm/LastMessage olmayan bir son mesaj alırsa, WCF bir son mesajla yanıtlar. İki yönlü ileti değişim protokolü söz konusu olduğunda, son ileti uygulama iletisini taşır; tek yönlü ileti değişim protokolü söz konusu olduğunda, son ileti boş olur.

WCF Yanıtlayıcısı, yanıt dizisinin boş gövdeli son iletisi için onay gerektirmez.

TerminateSequence Exchange

Tüm istekler geçerli bir yanıt aldığında, WCF Başlatıcısı istek dizisinin TerminateSequence iletisini HTTP istek bacağında oluşturur ve iletir. WCF bir yanıt gerektirir, ancak yanıt mesajını göz ardı eder. WCF Yanıtlayıcısı, istek dizisinin TerminateSequence iletisini yanıt dizisinin TerminateSequence iletisiyle yanıtlar.

Normal bir kapatma sırasında, her iki ileti de TerminateSequence tam kapsam SequenceAcknowledgement sağlar.

İstek/Yanıt, Adreslenebilir Başlatıcı

Bağlayıcılık

WCF, bir gelen ve giden HTTP kanalı üzerinden iki dizi kullanan bir istek-yanıt iletisi değişim düzeni sağlar. WCF, tüm iletileri iletmek için HTTP isteklerini kullanır. Tüm HTTP yanıtları boş bir gövdeye ve HTTP 202 durum koduna sahiptir.

CreateSequence Exchange

WCF Başlatıcısı teklif içeren bir CreateSequence ileti oluşturur. WCF Yanıtlayıcısı, bir dizi oluşturmadan önce CreateSequence'ın bir teklife sahip olmasını sağlar. WCF, HTTP isteğinde CreateSequenceResponse'yı CreateSequence'nin ReplyTo uç nokta referansına gönderir.

İstek/Yanıt Bağıntısı

WCF Başlatıcısı, tüm uygulama isteği iletilerinin bir MessageId ve bir ReplyTo uç nokta başvurusu taşımasını sağlar. WCF Başlatıcısı, uygulama istek iletisine iletinin CreateSequenceReplyTo uç nokta referansını uygular. WCF Yanıtlayıcısı, gelen istek iletilerinin hem bir MessageId hem de bir ReplyTo taşımasını gerektirir. WCF Yanıtlayıcısı, uç nokta başvurusunun hem hem de tüm uygulama isteği iletilerinin CreateSequence URI'sinin aynı olmasını sağlar.