Condividi tramite


ServiceThrottle.MaxConcurrentInstances Proprietà

Definizione

Ottiene o imposta il numero massimo di oggetti del servizio che possono essere eseguiti contemporaneamente.

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

Valore della proprietà

Int32

Il numero massimo di oggetti InstanceContext presenti contemporaneamente nel servizio. L'impostazione predefinita è numero massimo di chiamate simultanee + numero massimo di sessioni simultanee.

Esempio

Nell'esempio di codice seguente viene illustrato l'utilizzo tipico della classe ServiceThrottle facendo riferimento al ServiceThrottlingBehavior in un file di configurazione dell'applicazione. In questo caso, i valori specificati stabiliscono, al massimo, un'elaborazione di messaggi per volta da una connessione a un elemento InstanceContext. L'utilizzo realistico deve essere determinato tramite l'esperienza.

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

Commenti

La proprietà MaxConcurrentInstances specifica il numero massimo di oggetti InstanceContext nel servizio. È importante tenere presente la relazione tra la proprietà MaxConcurrentInstances e la proprietà InstanceContextMode. Se InstanceContextMode è PerSession il valore risultante è il numero totale di sessioni. Se InstanceContextMode è PerCall il valore risultante è il numero di chiamate simultanee. Se un messaggio arriva quando il numero massimo di oggetti InstanceContext è già stato impostato, il messaggio viene messo in attesa fino a che un oggetto InstanceContext viene chiuso.

Nota

Viene scritta una traccia ogni volta che il valore di questa proprietà viene superato. La prima traccia viene scritta come un avviso.

Si applica a