Fragensteller
WCF - eigene Thread pro Session

Frage
Alle Antworten
-
Hallo, es ist möglich, dass eine Clientanwendung mehrere Threads anlegt und dann versucht, gleichzeitig mehrere Operationen in derselben Sitzung aufzurufen. In den Standardeinstellungen arbeitet ein Dienst mit nur einem Thread (Single-Threaded). Er verarbeitet also immer nur eine einzige Anforderung gleichzeitig. Falls eine neue Anforderung eintrifft, während der Dienst noch eine vorherige Anforderung verarbeitet, sorgt die WCF-Runtime dafür, dass die neue Anforderung warten muss, bis die erste Anforderung abgeschlossen ist.
Dieses Verhalten kann man ändern. Das Attribut ServiceBeahvior hat eine Eigenschaft ConcurrencyMode
Über diese Eigenschaft kann man festlegen wie gleichzeitige Anfragen in derselben Sitzung verarbeitet werden.
standardwert ist ConcurrencyMode.Single
Du solltest Deinem Service ConcurrencyMode.Multiple zuweisen.
Also:
[ServiceBehavior(..., ConcurrencyMode = ConcurrycyMode.Single)]
public calss MyLittleService: IMyLitteServiec
{
...
}
Freitag, 14. Oktober 2011 17:03 -
Hallo,
danke für die Antwort, aber diese verschiedenen Konstallationen habe ich alle gelesen und ausprobiert.
Nochmal zu verdeutlichen:Es geht darum, dass wenn eine Session eröffnet wird, ein neuer Thread erzeugt wird und der ist dann ausschießlich für dieses Session zuständig und sonst nichts. Wird die Session geschlossen, wird auch der Thread beendet. Das wäre genau das, was ich benötige.
Gruß
ChristianFreitag, 21. Oktober 2011 15:29 -
Diesen Modus verwende ich ja schon.
Dieser erstellt aber nur dann eine neue Thread, wenn keine bereits existierende verfügbar ist.
Und es wird auch immer die Thread verwendet, der gerade verfügbar ist.Was ich suche, ist eine feste Zuordnung einer Thread zu einer Session und für jede einzelne Session eine eigene Thread.
Montag, 24. Oktober 2011 09:49