Aracılığıyla paylaş


<reliableSession>

WS-Reliable Mesajlaşma ayarını tanımlar. Bu öğe özel bağlamaya eklendiğinde, sonuçta elde edilen kanal tam olarak bir kez teslim güvencelerini destekleyebilir.

<Yapılandırma>
  <system.serviceModel>
    <Bağlama>
      <Custombinding>
        <Bağlama>
          <reliableSession>

Syntax

<reliableSession acknowledgementInterval="TimeSpan"
                 flowControlEnabled="Boolean"
                 inactivityTimeout="TimeSpan"
                 maxPendingChannels="Integer"
                 maxRetryCount="Integer"
                 maxTransferWindowSize="Integer"
                 reliableMessagingVersion="Default/WSReliableMessagingFebruary2005/WSReliableMessaging11"
                 ordered="Boolean" />

Öznitelikler ve Öğeler

Öznitelikler, alt ve üst öğeler aşağıdaki bölümlerde açıklanmaktadır.

Öznitelikler

Öznitelik Açıklama
acknowledgementInterval TimeSpan Kanalın bu noktaya kadar alınan iletiler için bildirim göndermek için bekleyeceği maksimum zaman aralığını içeren bir. Varsayılan değer 00:00:0.2'dir.
flowControlEnabled WS-Reliable mesajlaşması için Akış denetiminin Microsoft'a özgü bir uygulaması olan gelişmiş akış denetiminin etkinleştirilip etkinleştirilmediğini gösteren boole değeri. Varsayılan değer: true.
ınactivitytimeout Kanalın TimeSpan hataya neden olmadan önce diğer iletişim partisinin herhangi bir ileti göndermesine izin vermeyeceğini belirten bir. Varsayılan değer 00:10:00'dır.

Kanaldaki etkinlik, uygulama veya altyapı iletileri alma olarak tanımlanır. Bu özellik, etkin olmayan oturumun etkin durumda tutulması için gereken en uzun süreyi denetler. Etkinlik olmadan daha uzun süre geçerse, oturum altyapı ve kanal hataları tarafından iptal edilir. Not: Uygulamanın bağlantıyı canlı tutmak için düzenli aralıklarla ileti göndermesi gerekmez.
maxPendingChannels Dinleyicinin kabul edilmesi için bekleyebilen en fazla kanal sayısını belirten bir tamsayı. Bu değer 1 ile 16384 (dahil) arasında olmalıdır. Varsayılan değer 4'tür.

Kabul edilmeyi bekleyen kanallar beklemededir. Bu sınıra ulaşıldıktan sonra hiçbir kanal oluşturulmaz. Bunun yerine, bu sayı kapanana kadar bekleme moduna alınırlar (bekleyen kanallar kabul edilir). Bu, fabrika başına bir sınırdır.

Eşiğe ulaşıldığında ve uzak bir uygulama yeni bir güvenilir oturum oluşturmaya çalıştığında istek reddedilir ve bu hataya neden olan açma işlemi reddedilir. Bu sınır, bekleyen giden kanalların sayısı için geçerli değildir.
maxRetryCount Güvenilir kanalın, bildirim almadığı bir iletiyi, temel alınan kanalında Gönder'i çağırarak en fazla kaç kez yeniden iletme girişiminde bulunduğunu belirten bir tamsayı.

Bu değer sıfırdan büyük olmalıdır. Varsayılan değer 8'dir.

Bu değer sıfırdan büyük bir tamsayı olmalıdır. Son yeniden iletimden sonra bir bildirim alınmazsa kanal hataları olur.

Alıcıya teslimi alıcı tarafından onaylandıysa iletinin aktarıldığı kabul edilir.

İletilen bir ileti için belirli bir süre içinde bir bildirim alınmadıysa, altyapı iletiyi otomatik olarak yeniden aktarır. Altyapı, iletiyi bu özellik tarafından belirtilen en fazla sayıda yeniden göndermeye çalışır. Son yeniden iletimden sonra bir bildirim alınmazsa kanal hataları olur.

Altyapı, hesaplanan ortalama gidiş dönüş süresine göre ne zaman yeniden iletileceğini belirlemek için üstel bir geri alma algoritması kullanır. Yeniden iletimden önce başlangıçta 1 saniye içinde başlayan ve her denemede gecikmeyi iki katına çıkararak ilk iletim girişimi ile son yeniden iletim girişimi arasında yaklaşık 8,5 dakika geçmesine neden olur. İlk yeniden iletim denemesinin süresi hesaplanan gidiş dönüş süresine göre ayarlanır ve bu girişimlerin elde edilen esnetme süresi buna göre değişir. Bu, yeniden iletim süresinin farklı ağ koşullarına dinamik olarak uyum sağlamasına olanak tanır.
maxTransferWindowSize Arabelleğin en büyük boyutunu belirten bir tamsayı. Geçerli değerler 1 ile 4096 (dahil) arasındadır.

İstemcide bu öznitelik, alıcı tarafından henüz onaylanmamış iletileri tutmak için güvenilir bir kanal tarafından kullanılan arabellek boyutunun üst sınırını tanımlar. Kota birimi bir iletidir. Arabellek doluysa, diğer SEND işlemleri engellenir.

Alıcıda bu öznitelik, kanal tarafından uygulamaya henüz gönderilmemiş gelen iletileri depolamak için kullanılan arabellek boyutunun üst sınırını tanımlar. Arabellek doluysa, diğer iletiler alıcı tarafından sessizce bırakılır ve istemci tarafından yeniden iletim gerektirir.
ordered İletilerin gönderildikleri sırayla ulaşma garantisinin verilip verilmeyeceğini belirten boole değeri. Bu ayar ise falseiletiler sıra dışı gelebilir. Varsayılan değer: true.
Reliablemessagingversion kullanılacak WS-ReliableMessaging sürümünü belirten geçerli bir değer ReliableMessagingVersion .

Alt Öğeler

Hiçbiri

Üst Öğeler

Öğe Açıklama
<Bağlama> Özel bağlamanın tüm bağlama özelliklerini tanımlar.

Açıklamalar

Güvenilir oturumlar, güvenilir mesajlaşma ve oturumlar için özellikler sağlar. Güvenilir mesajlaşma, hata durumunda iletişimi yeniden denenir ve iletilerin sırasıyla gelmesi gibi teslim güvencelerinin belirtilmesine olanak tanır. Oturumlar, çağrılar arasındaki istemcilerin durumunu korur. Bu öğe isteğe bağlı olarak sıralı ileti teslimi de sağlar. Uygulanan bu oturum SOAP ve aktarım aracıları arasında geçiş yapabilir.

Her bağlama öğesi, ileti gönderirken veya alırken bir işleme adımlarını temsil eder. Çalışma zamanında bağlama öğeleri, iletileri göndermek ve almak için gereken giden ve gelen kanal yığınlarını oluşturmak için gerekli olan kanal fabrikalarını ve dinleyicileri oluşturur. , reliableSession yığında uç noktalar arasında güvenilir bir oturum oluşturabilen ve bu oturumun davranışını yapılandırabilen isteğe bağlı bir katman sağlar.

Daha fazla bilgi için bkz . Güvenilir Oturumlar.

Örnek

Aşağıdaki örnekte, özellikle istemci durumunu koruyan ve sipariş içi teslim güvencelerini belirten güvenilir oturumları etkinleştirme olmak üzere çeşitli aktarım ve ileti kodlama öğeleriyle özel bağlamanın nasıl yapılandırıldığı gösterilmektedir. Bu özellik, istemci ve hizmet için uygulama yapılandırma dosyalarında yapılandırılır. Örnekte hizmet yapılandırması gösterilir.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="Microsoft.ServiceModel.Samples.CalculatorService"
               behaviorConfiguration="CalculatorServiceBehavior">
        <!-- This endpoint is exposed at the base address provided by host: http://localhost/servicemodelsamples/service.svc -->
        <!-- specify customBinding binding and a binding configuration to use -->
        <endpoint address=""
                  binding="customBinding"
                  bindingConfiguration="Binding1"
                  contract="Microsoft.ServiceModel.Samples.ICalculator" />
        <!-- The mex endpoint is exposed at http://localhost/servicemodelsamples/service.svc/mex -->
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
    <!-- custom binding configuration - configures HTTP transport, reliable sessions -->
    <bindings>
      <customBinding>
        <binding name="Binding1">
          <reliableSession />
          <security authenticationMode="SecureConversation"
                    requireSecurityContextCancellation="true">
          </security>
          <compositeDuplex />
          <oneWay />
          <textMessageEncoding messageVersion="Soap12WSAddressing10"
                               writeEncoding="utf-8" />
          <httpTransport authenticationScheme="Anonymous"
                         bypassProxyOnLocal="false"
                         hostNameComparisonMode="StrongWildcard"
                         proxyAuthenticationScheme="Anonymous"
                         realm=""
                         useDefaultWebProxy="true" />
        </binding>
      </customBinding>
    </bindings>
    <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-->
    <behaviors>
      <serviceBehaviors>
        <behavior name="CalculatorServiceBehavior">
          <serviceMetadata httpGetEnabled="True" />
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Ayrıca bkz.