'Autonome WCF ServiceHost / WebServiceHost / Concurrency peformance Options de conception (.NET 3.5)

StackOverflow https://stackoverflow.com/questions/2823553

Question

J'offrirez quelques fonctions via un'autonome (dans un WindowsService) WebServiceHost (pas sûr de savoir comment traiter HTTP GET / POST avec ServiceHost), l'un qui peut être appelé une grande quantité de temps. Cette fonction s'appuiera également sur une connexion dans le appdomain (hébergé par le WindowsService pour qu'il puisse rester en vie sur plusieurs demandes).

Je les préoccupations et serait oh tellement reconnaissante pour toutes les entrées / pensées / commentaires suivants:

  • Accès concurrent - comment la WebServiceHost gère un tas de requêtes simultanées. Sont-ils mis en attente et les processus de manière séquentielle ou sont nouvelles instances des contrats automagiquement créés?
  • WebServiceHost -> WindowsService communication - J'ai besoin une certaine forme de communication de la WebServiceHost à l'accueil WindowsService pour des choses comme demander une nouvelle session si l'on n'existe pas. Peut-être que la mise en œuvre d'une classe qui étend la WebServiceHost avec des événements qui l'WindowsService souscrit à ... (à moins d'une autre façon que je peux déclencher un événement dans le WindowsService lorsqu'une demande est faite ...)
  • WebServiceHosts ou contrats multiples - Ne serait-il donner un gain de performance réel pour être en cours d'exécution multiples instances de WebServiceHost dans différents threads (un par point final peut-être?) - Une meilleure compréhension du premier point serait probablement besoin d'aide ici .
  • WSDL - Je ne sais pas pourquoi (probablement juste besoin de faire plus de lecture), mais je ne suis pas sûr de savoir comment arriver à répondre le point final de base WebServiceHost un document WDSL décrivant la mise à disposition Contrat. Non nécessaire que toutes les opérations seront effectuées via des requêtes GET qui ne changera probablement, mais il serait agréable d'avoir ...

C'est à ce sujet pour le moment,.) J'ai lu beaucoup sur WCF et souhaite que j'avais eu en elle depuis longtemps, mais certainement encore apprendre

Était-ce utile?

La solution

Accès simultané - ce qui est quelque chose que vous pouvez régler à l'aide ServiceBehaviorAttribute. il y a un certain nombre d'options - vous pouvez avoir WCF créer une nouvelle instance de votre classe de service pour chaque requête entrante, ou vous pouvez avoir un seul handle d'instance toutes les demandes. En outre, vous pouvez dire WCF si vous passer les demandes en série ou en même temps.

WebServiceHost - communication> WindowsService. Deux approches viennent à l'esprit: WCF prend en charge un mode appelé « exemple bien connu » où vous passez une instance de votre service au constructeur ServiceHost au lieu de passer d'un type et de laisser WCF instancier pour vous. Avec ce mode, vous pouvez préconfigurer votre instance de service avec un retour de référence à votre code d'hébergement (Sinon, vous pouvez utiliser des événements). Une alternative si vous voulez préserver la flexibilité instanciation serait d'avoir une méthode statique dans votre code d'hébergement que le service WCF pourrait appeler de nouveau dans.

WebServiceHosts ou contrats multiples - vraiment aucun avantage à avoir plus d'une instance de ServiceHost. voir aussi ce fil SO: Quels sont les avantages pour plusieurs servicehosts? Est-ce un soutien ServiceHost plusieurs connexions simultanées sur un point final? .

WSDL - Alors que vous pouvez activer WSDL en tournant sur la publication des métadonnées ( http: //msdn.microsoft.com/en-us/library/ms788760.aspx ), le soutien WSDL est destiné aux services SOAP, HTTP pur GET / POST. Le WSDL qui obtient généré automatiquement pour votre service ne sera probablement pas très utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top