2010-08-17 5 views
0

J'essaie d'améliorer les performances d'une application Silverlight 4 WCF RIA. Comme c'est uniquement pour l'intranet, j'ai pensé que passer de la liaison HTTP binaire par défaut à la liaison Net.TCP pourrait améliorer les performances.WCF RIA sur liaison Net.TCP?

Cependant, j'ai du mal à faire tourner une simple application de preuve de concept. J'ai:

  • commutées la preuve de l'application conecpt de Cassini à IIS (7)
  • ajouté les liaisons et les protocoles activés sur IIS
  • ajouté un fichier clientaccesspolicy.xml à ma racine IIS

maintenant, quand je crée un contexte comme ceci:

var context = new DomainService1(
new Uri(
    "net.tcp://localhost:4502/BusinessApplication/BusinessApplication2.Web/ClientBin/BusinessApplication2-Web-DomainService1.svc")); 

... Je reçois l'erreur suivante:

The provided URI scheme 'net.tcp' is invalid; expected 'http'. Parameter name: via 

Maintenant, je suis perplexe. Pour autant que je sache, le problème est que le client créé par le code RIA WCF généré automatiquement doit être informé qu'il doit utiliser un point de terminaison Net.TCP, mais je ne sais pas comment faire.

J'ai trouvé beaucoup de billets de blog expliquant comment faire passer les services WCF sur Net.TCP, mais je n'en ai pas trouvé un seul parlant de WCF RIA, et je ne trouve aucune documentation officielle non plus. Toutes ces explications impliquent des changements au fichier web.config qui semblent inadaptés à une application WCF RIA.

Pourrait-on s'il vous plaît soit m'expliquer comment obtenir ce configuré, ou me diriger vers une documentation?

+0

Jusqu'à présent, il ne semble pas possible: » ... RIA Services ne prend pas en charge la modification (du moins, pas selon un MS poster sur un thread différent) le type de liaison de DomainContext. " sur http://forums.silverlight.net/forums/p/149151/332402.aspx. –

Répondre

0

Les services RIA WCF dépendent de HttpContext qui n'est pas disponible avec la liaison Net.TCP. En ce qui concerne les problèmes de perf, pourriez-vous élaborer un peu plus loin? Quelle est la requête/opération de goulot d'étranglement? Quelle est la taille des données (taille de l'entité x nombre d'entités)? Quel est le delta entre vos exigences de perf et les performances actuelles?

Peut-être qu'il existe d'autres moyens qui n'impliquent pas Net.TCP?

Merci.

Dinesh

(WCF RIA Services de gestionnaire de programme)

+0

Dinesh, merci pour la réponse. En ~ 600 caractères: nous récupérons des points pour un graphique du serveur, puis nous appelons le serveur pour effectuer des opérations statistiques plusieurs fois, chaque fois que nous récupérons un nouvel ensemble de points. Cela remplace une application VBA héritée qui doit fonctionner presque instantanément en raison du nombre d'opérations statistiques demandées en temps réel. La latence de 30 ms s'est révélée acceptable dans les tests de prototypes. Nous récupérons entre 30 et 100 entités après chaque opération, totalisant environ 12 Ko selon Fiddler. L'aller-retour actuel est> 100ms. –

+0

Oh, et au cas où vous vous poseriez la question, nous n'étions pas au courant des exigences absolues de performance avant que nous ne commencions la route de l'architecture WS. En rétrospective, nous aurions dû produire des prototypes de performance variable, d'abord, en déterminant des nombres durs pour les performances requises, et en les incorporant (comme des tests de performance automatisés?) dès le début. –