2009-09-16 7 views

Répondre

4

Il existe quatre manières courantes, qui sont toutes décrites joliment sur MSDN: Hosting WCF Services.

  1. Hosting in IIS.
  2. Hosting in WAS.
  3. Hosting in a Windows service.
  4. Hosting in an application (alias "auto-hébergement").
+2

L'hébergement dans un service Windows et l'hébergement dans une application est essentiellement la même chose, car un service Windows est juste une autre application. –

+1

Bien sûr, mais ils ont suffisamment de considérations différentes pour être explicitement appelées séparément dans MSDN. Vraiment, ma réponse est arrangée exactement comme MSDN l'énonce. :) – bobbymcr

+0

noter qu'une application peut également être une application de formulaires –

0

Vous pouvez l'héberger dans une application IIS ou dans votre propre exécutable. Généralement, l'exécutable serait une application de service Windows.

+0

Je ne dirais pas nécessairement que le cas «typique» pour l'hébergement d'un service WCF dans un exécutable est via un service Windows. Les services WCF fournissent une alternative à .NET Remoting pour la communication à travers les limites AppDomain. En tant que tel, WCF est tout aussi susceptible d'être utilisé dans une application Windows Forms que c'est un service Windows. –

+0

Alors que vous pourriez certainement héberger un service WCF dans une application WinForms, je ne suis pas sûr que de nombreuses applications le feraient. Je pense que les applications WinForms seraient très probablement un consommateur WCF et pas nécessairement un hôte. Mais alors peut-être que je suis à courte vue et ne pas envisager une classe de casses d'utilisation que vous avez en tête. –

+0

A titre d'exemple, si une application est extensible via des plug-ins, il est logique de charger ces plug-ins dans leur propre AppDomain. Une fois cela fait, l'application est maintenant confrontée à la question de combler le fossé AppDomain à des fins de communication, un problème que WCF résout facilement (tout comme .NET Remoting et héritant de MarshalByRefObject). Je pense que dans de nombreux cas, votre affirmation est correcte; Je ne sais pas si je vais aussi loin que de dire que c'est «typique». Désolé de chipoter. :) –

0

Tout processus Windows peut être utilisé pour hôte un service WCF. Il n'y a pratiquement aucune restriction à cet égard - un processus peut héberger plusieurs services WCF et le même type de service WCF peut être hébergé simultanément sur plusieurs processus.

du livre de Juval LowyProgramming WCF Services, l'hébergement peut être fourni par

  • Microsoft Internet Information Server (IIS)
  • auto-hébergement dans une application Windows Forms, service Windows, ou une application console
  • Service d'activation Windows (WAS)
1

Pour l'instant, tout ce qui a été dit est correct.

  • Hébergement dans les protocoles que HTTP support IIS6 et "à la demande" activation
  • Hébergement dans IIS7/WAS (uniquement sur Vista/Server 2008 et plus) prend en charge tous les protocoles et "à la demande" activation
  • L'auto-hébergement dans une application console ou un service Windows prend en charge tous les protocoles, mais ne prend pas en charge l'activation à la demande (par exemple, votre service doit toujours être opérationnel)

Ce qui n'a pas été mentionné est ce que le. NET 4.0 vague plus tard ce year (2009) offrira - il y a un nouveau composant de serveur additionnel appelé Dublin qui est censé offrir un environnement d'hébergement riche et managé à la fois pour les services WCF et les flux de travail WF.

Marc

Questions connexes