2008-09-26 9 views
3

Nous avons un service WCF existant qui utilise wsDualHttpBinding pour activer les rappels au client. J'envisage de passer à netTcpBinding pour de meilleures performances, mais je me méfie beaucoup du fait de quitter le service hébergé par IIS (une «zone de confort» que nous aimons actuellement) pour avoir notre propre service Windows pour l'héberger. J'espérais que nous pourrions toujours héberger ceci sur IIS 7 mais Win2K8 ne sera pas la réalité pour nous pendant un certain temps.Déplacement du service WCF de IIS vers un service Windows

De quoi dois-je faire attention lorsque je crée mon propre service Windows pour héberger notre service WCF? Des choses comme la gestion de la durée de vie et la limitation des requêtes sont des fonctionnalités qui sont offertes gratuitement avec IIS. J'aimerais également savoir comment nous pouvons héberger efficacement notre service sans que IIS puisse faire le travail pour nous. Merci! :)

Répondre

11

Comme vous ne pouvez pas héberger avec WAS, il y a plusieurs choses à réaliser.

  • Si le service tombe en panne, il ne redémarre pas par défaut (bien que vous pouvez modifier dans les propriétés du service)
  • IIS recycler le pool d'applications si elle se bloque ou devient trop grand; vous devez le faire vous-même si vous voulez le même genre de fiabilité.
  • Vous devez créer un compte pour l'exécution du service ou utiliser l'un des services par défaut. Réessayez la tentation d'exécuter le service en tant que système ou sous un compte d'administrateur; Si vous souhaitez utiliser un compte intégré, utilisez le SERVICE RÉSEAU.
  • Il devient plus difficile de déboguer in situ.
  • l'aide d'un enregistreur Tenir compte d'erreur tel que log4net

Après avoir dit que je mis en place une combinaison de service WCF/Windows pour un client il y a 9 mois; il est fortement utilisé et n'est pas mort une fois.

Vous pouvez request throttle dans un service Windows, cela fait partie de la configuration WCF. Notez que les valeurs par défaut sont très faibles, il est probable que vous devrez les augmenter.

2

L'hébergement dans une application de service Windows (http://msdn.microsoft.com/en-us/library/ms734781.aspx) est un bon début.

Si vous pouvez héberger votre service sur Vista, vous pouvez également bénéficier du service Windows Process Activation Service (WAS). WAS est une généralisation de l'activation du processus IIS, qui peut être utilisée pour activer des processus sur des points de terminaison non-HTTP (TCP, Named Pipe, MSMQ). Pour en savoir plus sur WCF hébergé dans WAS, lisez http://msdn.microsoft.com/en-us/library/ms733109.aspx. Pour apprendre à installer et configurer WAS, lisez http://msdn.microsoft.com/en-us/library/ms731053.aspx.

Questions connexes