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.

<configuration>
  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding>
          <reliableSession>

Sözdizimi

<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.

Attributes

Özellik Description
acknowledgementInterval TimeSpan Kanalın bu noktaya kadar gelen 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 Microsoft'a özgü akış denetimi uygulaması olan gelişmiş akış denetiminin etkinleştirilip etkinleştirilmediğini gösteren Boole değeri. Varsayılan değer: true.
inactivityTimeout Kanalın TimeSpan hataya neden olmadan önce diğer iletişimin herhangi bir ileti göndermesine izin vermemesi için kanalın en uzun süresini 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 bir oturumu canlı tutmak için gereken en uzun süreyi denetler. Etkinlik olmadan daha uzun süre geçerse, oturum altyapı ve kanal hataları tarafından durduruldu. Not: Uygulamanın bağlantıyı canlı tutmak için düzenli aralıklarla ileti göndermesi gerekli değildir.
maxPendingChannels Dinleyicide kabul edilecek en fazla kanal sayısını belirten tamsayı. Bu değer 1 ile 16384 (dahil) arasında olmalıdır. Varsayılan değer 4'tür.

Kanallar kabul edilmeyi beklerken beklemededir. Bu sınıra ulaşıldığında kanal oluşturulmaz. Bunun yerine, bu sayı kapanana kadar (bekleyen kanalları kabul ederek) bekleme moduna alınırlar. 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 hataları soran açık işlem yapılır. Bu sınır, bekleyen giden kanalların sayısı için geçerli değildir.
maksimumTekrarSayısı Güvenilir kanalın bildirim almadığı bir iletiyi, temel alınan kanalda Gönder'i çağırarak en fazla kaç kez yeniden aktarma girişiminde bulunduğunu belirten 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ı.

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

İletilen bir ileti için belirli bir süre içinde 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ı.

Altyapı, hesaplanan ortalama gidiş dönüş süresine göre ne zaman yeniden iletileceğini belirlemek için üstel geri alma algoritması kullanır. Yeniden iletimden ve gecikmeyi her denemede ikiye katlamadan önce başlangıçta 1 saniye başlar ve bu da ilk iletim girişimi ile son yeniden iletim girişimi arasında yaklaşık 8,5 dakika geçmesine neden olur. İlk yeniden iletim girişiminin süresi, hesaplanan gidiş dönüş süresine göre ayarlanır ve bu girişimlerin esnetme süresi buna göre değişir. Bu, yeniden iletim süresinin değişen 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, daha fazla SEND işlemi engellenir.

Alıcıda, bu öznitelik henüz uygulamaya gönderilmemiş gelen iletileri depolamak için kanal tarafından 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.
Sipariş İletilerin gönderildikleri sırayla ulaşma garantisinin verilip verilmeyeceğini belirten boole değeri. Bu ayar ise false, iletiler 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ç kimse

Üst Öğeler

Öğe Description
<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ırayla gelmesi gibi teslim güvencelerinin belirtilmesine olanak tanır. Oturumlar, çağrılar arasındaki istemciler için durumu 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, ileti göndermek ve almak için gereken giden ve gelen kanal yığınları oluşturmak için gerekli olan kanal fabrikalarını ve dinleyicilerini 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.

Example

Aşağıdaki örnekte, özellikle istemci durumunu koruyan ve sipariş içi teslim güvencelerini belirten güvenilir oturumların etkinleştirilmesi 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österilmektedir.

<?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 bakınız