ServiceThrottlingBehavior.MaxConcurrentSessions Özellik

Tanım

Bir nesnenin bir kerede kabul edebileceği en fazla oturum sayısını belirten bir ServiceHost değer alır veya ayarlar.

public:
 property int MaxConcurrentSessions { int get(); void set(int value); };
public int MaxConcurrentSessions { get; set; }
member this.MaxConcurrentSessions : int with get, set
Public Property MaxConcurrentSessions As Integer

Özellik Değeri

Bir hizmet konağı tarafından kabul edilen en fazla oturum sayısı. Varsayılan değer, işlemci sayısının 100 katıdır.

Örnekler

Aşağıdaki kod örneği, örnek olarak , MaxConcurrentCallsve MaxConcurrentInstances özelliklerini 1 olarak ayarlayan bir uygulama yapılandırma dosyasından MaxConcurrentSessionskullanımını ServiceThrottlingBehavior gösterir. Gerçek dünya deneyimi, belirli bir uygulama için en uygun ayarların ne olduğunu belirler.

<configuration>
  <appSettings>
    <!-- use appSetting to configure base address provided by host -->
    <add key="baseAddress" value="http://localhost:8080/ServiceMetadata" />
  </appSettings>
  <system.serviceModel>
    <services>
      <service 
        name="Microsoft.WCF.Documentation.SampleService"
        behaviorConfiguration="Throttled" >
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/SampleService"/>
          </baseAddresses>
        </host>
        <endpoint
          address=""
          binding="wsHttpBinding"
          contract="Microsoft.WCF.Documentation.ISampleService"
         />
        <endpoint
          address="mex"
          binding="mexHttpBinding"
          contract="IMetadataExchange"
         />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior  name="Throttled">
          <serviceThrottling 
            maxConcurrentCalls="1" 
            maxConcurrentSessions="1" 
            maxConcurrentInstances="1"
          />
          <serviceMetadata 
            httpGetEnabled="true" 
            httpGetUrl=""
          />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

Açıklamalar

özelliği, MaxConcurrentSessions bir ServiceHost nesnenin kabul edebildiği en fazla oturum sayısını belirtir. Bu durumda oturumların yalnızca güvenilir oturumları destekleyen kanallar (örneğin, System.ServiceModel.NetNamedPipeBinding oturumları desteklediği ancak güvenilir oturumlar içermediği) anlamına geldiğini anlamak önemlidir.

Her dinleyici nesnesinin, WCF kanal oturumunu kabul edene ve ileti işlemeye başlayana kadar değerine MaxConcurrentSessions göre sayılmayan bir bekleyen kanal oturumu olabilir. Bu özellik en çok oturumları kullanan senaryolarda kullanışlıdır.

Bu özellik, istemci iş parçacığı sayısından daha az bir değere ayarlandığında, birden çok istemciden gelen istekler aynı yuva bağlantısında kuyruğa alınabilir. hizmetle oturum oluşturmamış istemciden gelen istekler, hizmetteki açık oturum sayısı ulaşmışsa MaxConcurrentSessionshizmet diğer istemcilerle oturumunu kapatana kadar engellenir. Sunulmayan istemci istekleri zaman aşımına uğradı ve hizmet oturumu aniden kapatır.

Bu durumu önlemek için, istek iletilerinin farklı yuva bağlantılarına gitmesi için farklı uygulama etki alanlarından istemci iş parçacıklarını çalıştırın.

Bir uygulama yapılandırma dosyasında serviceThrottling> öğesini kullanarak da bu özniteliğin< değerlerini ayarlayabilirsiniz.

Şunlara uygulanır