2009-06-22 1 views
2

Ich habe selbst gehostet Net TCP WCF-Dienst, der zwei Methoden verfügbar macht und der Dienst ist nicht threadsicher und es ist (PerSession).Konvertiert WCF parallele Aufrufe vom selben Client (mit verschiedenen Threads) in serielle?

Ich habe festgestellt, dass mein Kollege Entwickler, der den Dienst verwendet, auf das gleiche Dienstobjekt von verschiedenen Threads zugreift, und bis jetzt funktioniert es gut.

Also frage ich, ob Sie paralleler Anruf vom selben Client haben, dann wird der Dienst seriell? oder ich liege falsch? und ist es gut, auf das WCF-Dienstobjekt von verschiedenen Threads zuzugreifen?

+0

(auf Kommentar) –

Antwort

2

Die "pro Sitzung" ist die "instance context mode" - dies garantiert nur, dass Sie für die Dauer der Sitzung das gleiche serviceseitige Objekt (Implementierung des Dienstes) erhalten. Ich glaube, Sie sollten sich die "concurrency mode" ansehen. Wenn dies "single" ist, dann sind die Anrufe synchronisiert (seriell) - aber das ist nicht die einzige Einstellung; "multiple" und "re-entry" würden mehrere Threads gleichzeitig in den Dienst aufnehmen.

+0

okay, ich frage nach den verschiedenen Aufrufen vom selben Client, und was ist der Standard-Modus für den gemeinsamen Zugriff, weil ich es nicht auf dem Dienst erwähnt –

+1

Der Standardwert ist single, also ja würden sie sein seriell. Beachten Sie, dass dies * in Kombination * mit dem Instanzkontextmodus verwendet wird. Daher werden nur Aufrufe derselben Sitzung serialisiert (zwei unterschiedliche Sitzungen mit separaten SVC-Objekten können jedoch parallel ausgeführt werden). –

2

Kapitel 8 von Juval Lowy's "Programming WCF Services" enthält so ziemlich alles, was Sie möglicherweise über die Gleichzeitigkeit mit WCF wissen müssen. Es ist die inoffizielle "Bibel" von WCF. Ich empfehle dringend, es zu überprüfen.

Verwandte Themen