Freigeben über


ServiceThrottlingBehavior.MaxConcurrentInstances Eigenschaft

Definition

Hiermit wird ein Wert abgerufen oder festgelegt, der die maximale Anzahl an InstanceContext-Objekten innerhalb des Diensts angibt, die gleichzeitig ausgeführt werden können.

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

Eigenschaftswert

Die maximale Anzahl von gleichzeitigen InstanceContext-Objekten im Dienst. Der Standardwert ist die Summe des Werts von MaxConcurrentSessions und des Werts von MaxConcurrentCalls.

Beispiele

Im folgenden Codebeispiel wird die Verwendung des ServiceThrottlingBehavior aus einer Anwendungskonfigurationsdatei gezeigt, wobei die MaxConcurrentSessions-, MaxConcurrentCalls- und MaxConcurrentInstances-Eigenschaften als Beispiel auf 1 festgelegt werden. Die optimalen Einstellungen für eine bestimmte Anwendung finden Sie durch praktische Erfahrung heraus.

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

Hinweise

Die MaxConcurrentInstances-Eigenschaft gibt die maximale Anzahl der InstanceContext-Objekte im Dienst an. Es ist wichtig, die Beziehung zwischen der MaxConcurrentInstances-Eigenschaft und der InstanceContextMode-Eigenschaft zu beachten. Wenn InstanceContextModePerSession ist, ist der resultierende Wert die Gesamtzahl der Sitzungen. Wenn InstanceContextModePerCall ist, ist der resultierende Wert die Anzahl gleichzeitiger Aufrufe. Wenn eine Nachricht eintrifft, während die maximale Anzahl an InstanceContext-Objekten bereits vorhanden ist, wird die Nachricht zurückgehalten, bis ein InstanceContext-Objekt geschlossen wird.

Sie können die Werte dieses Attributs auch mithilfe des <serviceThrottling-Elements> in einer Anwendungskonfigurationsdatei festlegen.

Gilt für: