2009-07-27 7 views
9

Ich habe eine Client/Server-App mit Silverlight, Web-Services und Polling erstellt. Anscheinend habe ich die ganze Duplex-Kommunikation-Sache verpasst, als ich das erste Thema recherchierte. Auf jeden Fall war die MSDN article, die ich zu diesem Thema sah, vielversprechend.Skalierbarkeit des Duplex-Abrufs mit Silverlight/IIS

Bei der Untersuchung der Skalierbarkeit scheint es, als ob es Meinungen zum Thema widersprüchlich ist.

silverlight.net/forums/t/89970.aspx - Dieser Thread scheint anzuzeigen, dass die Duplex-Abfrage nur eine begrenzte Anzahl gleichzeitiger Clients auf dem Serverende unterstützt.

dotnetaddict.dotnetdevelopersjournal.com/sl_polling_duplex.htm - Dieser Blog-Eintrag erscheint an mehreren Stellen, so dass es Wasser matschig.

silverlight.net/forums/t/108396.aspx - Dieser Thread zeigt, dass ich nicht der einzige mit dieser Sorge bin, aber es gibt keine Antworten darin.

silverlight.net/forums/t/32858.aspx - Trotz aller schlechten Presse scheint dieser Thread eine offizielle Antwort zu haben, die besagt, dass die 10 gleichzeitigen Verbindungen pro Maschine sind.

Kurz gesagt, hat jemand Fakten/Benchmarks?

Thanks :)

+0

Ein anderes Problem, mit dem ich auf Silverligt konfrontiert 4 Abrufduplex und IIS [WCF Silverlight-Client 404 nicht gefunden Antwort für Umfrage-Nachricht] (http://stackoverflow.com/q/13838777/485076) – sll

Antwort

6

Das ist mein Verständnis dafür, aber ich habe keine Tests durchgeführt.

Bei Nicht-Server-Betriebssystemen (XP/Vista/Windows 7) gibt es eine integrierte 10-Verbindungsbeschränkung. Auf IIS 6 (XP) werden neue Verbindungen abgewiesen, sobald 10 ausgeführt werden. Auf II7 (Vista/Windows 7) wird es Verbindungen verbinden, sobald 10 in Arbeit sind. Ich denke, das bedeutet, dass 10 gleichzeitige Verbindungen aus sind.

Auf der Betriebssystemseite des Servers (2003/2008) gibt es keine Verbindungsbeschränkung. Auf IIS6 (2003) wird jedoch jede lange laufende Verbindung einen Thread aus dem Threadpool nehmen, so dass Sie ziemlich schnell auf ein Verbindungslimit stoßen werden. Auf IIS7 (2008) werden Async-Threads so deaktiviert, dass kein Thread verwendet wird. Daher sollten 1000 Verbindungen möglich sein.

+1

Ich denke, ich hatte gehofft für einige Zitate/Referenzen.:( – JustLoren

1

Es gibt WCF-interne Grenzwerte. Diese Grenzen können jedoch sehr einfach durch Konfiguration erweitert werden. (http://weblogs.asp.net/alexeyzakharov/archive/2009/04/17/how-to-increase-amount-of-silverlight-duplex-clients.aspx)

Ich bin in ein paar Probleme mit der Duplex-Bindung. Von Zeit zu Zeit wird der Kanal ohne ersichtlichen Grund gestört und es ist schwierig, ihn wieder anzuschließen. Mir sind keine Alternativen bekannt, um ein Push-Modell zu implementieren, ohne selbst alles zu tun (und vielleicht sogar die schlechtesten Ergebnisse zu erzielen).

5

Die Skalierbarkeit des WCF-Back-Ends mithilfe des Protokolls in einem Webfarmszenario wird unter http://tomasz.janczuk.org/2009/09/scale-out-of-silverlight-http-polling.html erläutert.

+0

Ich sah eine andere Skalierbarkeit Problem bei der Verwendung von Silverlight 4 Polling Duplex und IIS, im Grunde beobachtet Fehler bei der Verwendung mehrerer Wroker-Prozesse pro AppPoll - [WCF Silverlight-Client erhalten 404 nicht gefunden Antwort für Poll-Nachricht] (http://stackoverflow.com/q/13838777/485076), vielleicht kann dies gelöst werden, ohne MC-Protokoll zu implementieren? – sll