Sera-t-il efficace?
Cela dépend de l'implémentation du service, du nombre maximal de requêtes qu'il peut gérer dans un laps de temps spécifique. L'efficacité est une mesure relative: supposons que votre service est capable de traiter 20 messages/s, si votre exigence est de pouvoir traiter 10 messages/s, alors votre service est efficace. Mais si l'exigence est de 30, alors ce n'est pas le cas.
Échelle?
Encore une fois, il n'est pas lié à l'hébergement. Vos services sont-ils apatrides? Si ce n'est pas le cas, ils n'évolueront probablement pas beaucoup puisque l'équilibrage de la charge n'est pas possible.
Sera-t-il gérable?
Probablement pas: - vous devez avoir un utilisateur connecté sur le serveur pour exécuter l'application - il ne démarre pas automatiquement avec le serveur - il ne peut pas le redémarrage automatique en cas d'échec - il n'a pas créer des instances du service proactivement - elle ne fournit pas (sans code personnalisé) un moyen de vérifier la santé des services
instance unique? Plusieurs threads?
Si votre service ne maintient pas l'état entre les appels par client, puis configurez comme « une instance par appel et pas multithreading » -> Pas concurrency, haut débit
Si votre service ne maintenir l'état, puis configurez-le comme "une instance par session et multithreading" pour permettre à un client d'effectuer des appels simultanés. Faites attention aux problèmes de concurrence et protégez vos ressources.
Si votre service ne gère pas l'état par client mais garde certaines données globales stockées pour tous les appels, considérez la "instance unique par service et multithreading". Gardez à l'esprit les problèmes de concurrence possibles. En cela, vous pouvez aussi bien utiliser "une instance par appel" et garder le stockage global hors service.
Comment cela est-il déterminé par la configuration? – DarthVader
@ user177 Je suppose que vous avez un App.Config. Voir par exemple http://msdn.microsoft.com/fr-fr/magazine/cc163590.aspx –