Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ServiceThrottlingBehavior Klasse macht Eigenschaften verfügbar, mit denen Sie einschränken können, wie viele Instanzen oder Sitzungen auf Anwendungsebene erstellt werden. Mithilfe dieses Verhaltens können Sie die Leistung Ihrer Windows Communication Foundation (WCF)-Anwendung optimieren.
Steuern von Dienstinstanzen und gleichzeitigen Aufrufen
Verwenden Sie die MaxConcurrentCalls Eigenschaft, um die maximale Anzahl von Nachrichten anzugeben, die aktiv in einer ServiceHost Klasse verarbeitet werden, und die MaxConcurrentInstances Eigenschaft, um die maximale Anzahl von InstanceContext Objekten im Dienst anzugeben.
Da die Ermittlung der Einstellungen für diese Eigenschaften normalerweise nach praktischen Erfahrungen beim Ausführen der Anwendung unter Last erfolgt, werden die Einstellungen für die ServiceThrottlingBehavior-Eigenschaften typischerweise in einer Anwendungs-Konfigurationsdatei mithilfe des <ServiceThrottling-Elements> festgelegt.
Das folgende Codebeispiel zeigt die Verwendung der ServiceThrottlingBehavior Klasse aus einer Anwendungskonfigurationsdatei, die die Eigenschaften MaxConcurrentSessions, MaxConcurrentCalls und MaxConcurrentInstances als triviales Beispiel auf 1 festlegt. Die praxisnahe Erfahrung bestimmt die optimalen Einstellungen für jede bestimmte Anwendung.
<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>
Das genaue Laufzeitverhalten hängt von den Werten der ConcurrencyMode und InstanceContextMode Eigenschaften ab, die steuern, wie viele Nachrichten innerhalb eines Vorgangs gleichzeitig bearbeitet werden können, und die Lebensdauer der Funktion InstanceContext relativ zu den eingehenden Kanalsitzungen.
Weitere Informationen finden Sie unter MaxConcurrentCallsund MaxConcurrentInstances.