2010-11-10 5 views
0

J'ai un problème de performances avec les services WCF hébergés dans IIS à l'aide de liaisons net.tcp.Hébergement d'un service WCF dans IIS dans un site unique à l'aide de la liaison TCP et de plusieurs ports

Nous avons récemment porté notre système de COM + à WCF et les tests indiquent une dégradation des performances. J'ai regardé les compteurs de performance sur le serveur et l'utilisation du processeur est très faible (< 10%), il y a beaucoup de mémoire disponible, les lectures de disque sont normales etc ... J'ai également vérifié les compteurs de performance WCF et le nombre de les appels sont faibles (au plus 1 à tout moment), le nombre d'appels par seconde est assez faible (16 appels par seconde pour un service qui est le plus utilisé par le système). Tous nos services sont configurés pour être par appel et un fil unique ...

J'ai déjà joué avec la limitation et j'ai réglé toutes les valeurs pour tous les paramètres à 100 (le serveur est une machine à 8 cœurs et je crois que que les valeurs de limitation réelles finissent par être ce que vous définissez multiplié par le nombre de CPU). Je ne pense pas qu'il y ait un problème là-bas.

J'ai aussi fait en sorte que le client l'utilise ses connexions efficacement (ne pas créer de nouvelles où il y a une connexion tcp existante qui peut être utilisé)

L'application Web actuelle accueille environ 50 services (eh oui, que c'est 50!) et pour le moment j'essaie d'éliminer cela comme la source du problème. Je cherche à héberger les services dans plusieurs applications web et je voudrais aussi qu'ils utilisent des ports différents mais j'ai quelques problèmes avec ça et je ne trouve pas d'instructions pas à pas sur internet, donc j'espère Quelqu'un ici sera en mesure de m'aider :)

Voici ce que j'ai essayé de faire jusqu'à présent:
1) J'ai ajouté une autre liaison au site Web par défaut dans IIS (c'est que j'ai deux net. tcp bindings, l'un est configuré pour utiliser les informations de liaison "808: *" et l'autre utilise "809: *") 2) Je me suis assuré que ces ports sont autorisés à traverser le pare-feu
3) Alors je ' J'ai essayé de configurer chaque application web pour filtrer les ports (c'est comme nippet de web.config où je veux utiliser le port 808):

<serviceHostingEnvironment>
<baseAddressPrefixFilters>
< préfixe add = "// net.tcp < servername>: 808"/>
</baseAddressPrefixFilters >
</serviceHostingEnvironment >

Lorsque je tente de se connecter à ce service que je reçois un Le service à l'adresse de point de terminaison « net.tcp: // servername < > /SomeService.svc » est indisponible pour le protocole de l'adresse

Si je supprime le < serviceHostingEnvironmentgt; bit. Qu'est-ce que je fais mal ici?

Autre service, par exemple ceux que je veux être disponible sur le port 809 ne sont pas disponibles du tout, le message d'erreur que je reçois me dit que le point de terminaison n'existe pas, il semble que IIS n'écoute pas sur ce port du tout. Le pare-feu, comme déjà mentionné, permet définitivement ce port à travers.

Des idées ou des suggestions sur ce que la meilleure configuration lors de l'accueil de ces nombreux services serait grandement appréciée!

Merci!

Répondre

1

Il s'agit d'un ancien message - mais ... A propos de l'erreur de point de terminaison - essayez de définir les informations de liaison réseau sur l'application et non sur le niveau du site.

Questions connexes