Dienstproxy und Sitzungen
Der Dienstproxy weist spezielle Verhaltensweisen für sitzungsbasierte und nicht sitzungsbasierte Kanalbindungen auf. Der Dienstproxy stellt sitzungsbasierte Semantik bereit, wenn die zugrunde liegende Kanalbindung sitzungsbasiert ist. In diesem Fall wird ein einzelner Kanal verwendet, um Anrufe zu bedienen. Wenn die Kanalbindung jedoch nicht sitzungsbasiert ist, erstellt der Dienstproxy für jeden Aufruf einen separaten Kanal. Beachten Sie jedoch, dass nicht sitzungsbasierte Kanäle gepoolt und möglicherweise wiederverwendet werden. Bei der Wiederverwendung eines Kanals hält der Dienstproxy den Kanal geöffnet, wenn der zugrunde liegende Kanal nicht fehlerhaft ist oder der Aufruf eines Kanals dazu geführt hat, dass der Dienstproxy den Kanal fehlerhaft macht. Beachten Sie das. Mit Ausnahme eines Fehlers wird ein Kanal geöffnet, solange der Dienstproxy geöffnet und nur geschlossen wird, wenn der Dienstproxy geschlossen wird.
Wenn die Kanalbindung sitzungsbasiert ist und der zugrunde liegende Kanal einen Fehler aufweist, wechselt der Dienstproxystatuscomputer in den WS_SERVICE_PROXY_STATE_FAULTED Zustand. Im Fall einer nicht sitzungsbasierten Kanalbindung führt ein Fehler im zugrunde liegenden Kanal nicht dazu, dass der Proxy in WS_SERVICE_PROXY_STATE_FAULTED Zustand wechselt.
Weitere Informationen zum Dienstproxy und seiner Beziehung zum Zustand finden Sie im Thema Dienstproxy . Beispiele für verschiedene Kanalbindungen finden Sie in den folgenden Beispielen:
- Nicht-Sitzungskanalbindung, HttpCalculatorClientExample
- sitzungsbasierte Kanalbindung, SessionfullCalculatorClientExample