ServiceThrottlingBehavior.MaxConcurrentSessions Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 MaxConcurrentSessions
hizmet 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.