2009-03-24 13 views
3

An einigen Stellen sehe ich, dass IsInitiating eine neue Sitzung erstellt. Andere Orte sagen, dass es nur bei Bedarf eine neue Sitzung erstellt. Welches ist richtig?WCF: Was genau macht IsInitiating?

Um es klar zu stellen, möchte ich sicherstellen, dass ich IService.Foo dreimal aufrufen kann, ohne dass drei Sitzungen erstellt werden.

Antwort

3

Wenn zum ersten Mal ein IsInitiating = true-Vorgang über einen Kanal aufgerufen wird, beginnt die Sitzung. Zukünftige Aufrufe an IsInitiating = true-Operationen starten keine neuen Sitzungen, sie werden einfach Teil der vorhandenen Sitzung. Eine Sitzung endet nach dem Aufruf einer IsTerminating-Operation (dies führt dazu, dass der Client den Kanal schließt). Nach dem Zurücksenden der Operation IsTerminating können keine weiteren Operationen über den Kanal aufgerufen werden. Diese Eigenschaften geben Entwicklern die Kontrolle über die Reihenfolge des Vorgangsaufrufs relativ zur Sitzungslebensdauer.

Sorry, Here is a link to the source.

+0

Danke, das ist genau das, was ich suchte. –

+0

Danke für den Link! –