2009-05-06 8 views
5

Je me demande si quelqu'un a essayé cette technique pour obtenir des événements pour le client du côté du serveur. J'ai un environnement qui utilise des serveurs basés sur Unix et donc ne peut pas utiliser WCF duplex/callbacks etc.WCF Auto-hébergement sur le client? Bon ou mauvais

L'idée étant que mes clients sont des boîtes de fenêtres exécutant une application. Net épaisse créerait un hébergeur WCF et enregistrer leur URL auto-hôte sur le serveur pour cette session. Ils auraient un contrat très simple et le serveur le ferait quand une mise à jour appelait le serveur client en lui disant qu'une mise à jour attendait sur le serveur et que le client l'obtiendrait alors etc.

J'essaie toujours de Prends la tête autour de la WCF donc je ne sais pas si c'est une bonne façon d'y aller, y a-t-il des implications en matière de sécurité dont je devrais m'inquiéter? existe-t-il des moyens de faire fonctionner les appels Duplex sur la plate-forme.

J'ai fait quelque chose de similaire avant d'utiliser des sockets ou peut-être qu'une file d'attente de messages multiplateforme serait une meilleure façon d'y aller de toute façon.

Merci

76mel

Répondre

1

Au moins, qui sonne comme il devrait fonctionner, mais je suppose que vous pourriez héberger dans IIS et depuis les serveurs * nix pourraient alors juste faire une toile appelez, non? Je ne suis pas sûr de ce que l'auto-hébergement pourrait vous apporter, même si cela devrait fonctionner, mais peut-être un peu plus difficile à configurer, etc.

Veuillez mettre à jour ici chaque fois que vous avez pris une décision parce que cela semble être un défi intéressant et certains d'entre nous aimeraient voir comment vous vous en sortez.

+0

Oui, j'ai pensé à mettre dans un niveau intermédiaire IIS c'est une excellente idée. Ma pensée cependant est que nous avons 10 000 clients et 1/3 de ce concurrent et tellement de soutien qui coûterait un peu dans les boîtes IIS. Je vais travailler sur une preuve de concept et je vous tiendrai au courant, mais je serais reconnaissant si quelqu'un a plus de réflexion, d'idées et de préoccupations concernant si cela est une bonne chose de faire tourner les auditeurs TCP est une pratique courante. prestations de service. – 76mel

+0

Ok, j'ai essayé cela et j'ai tout réussi. Je pense que cela fonctionnerait très bien pour les projets qui sont à l'intérieur du pare-feu. Si vous voulez étendre le pare-feu, je pense que l'utilisation d'un bus/file d'attente est une meilleure façon de vous connecter à un niveau inférieur. Ce que j'ai fait ici était d'avoir un contrat d'événement simple que le serveur Unix connaissait. J'ai exécuté le service WCF dans un service Windows qui s'enregistre tout d'abord auprès du serveur avec son point de terminaison. le serveur peut alors déclencher des événements à mon point de terminaison et je peux y répondre en tirant des données du serveur. – 76mel

+0

Excellent! Cela semble être un bon article de blog. –

1

Nous utilisons WCF auto-hébergé pour un scénario similaire. Nous voulions également éviter de rendre notre application client dépendante d'IIS, pour éviter les problèmes de licence et de déploiement.

Cela fonctionne assez bien pour nous, même si WCF peut être trop cher pour ce dont vous avez besoin. Puisque vous utilisez HTTP, vous pouvez créer un simple service Web construit directement sur Http.sys.

+0

Le service Web simple sur http.sys serait-il plus simple à écrire et à maintenir que l'utilisation de WCF? J'en doute. –

+0

Je n'ai pas essayé d'implémenter un service web sur http.sys moi-même, donc je ne peux pas le dire avec certitude. Mais j'ai travaillé avec la WCF pendant un certain temps et je l'ai trouvé beaucoup moins flexible que je le voudrais. – dthrasher

+0

Avez-vous essayé le serveur web cassini? – 76mel

1

Une autre façon d'obtenir des résultats similaires pourrait être d'avoir le sondage du client. Cela dépend fortement des conditions requises. Si vous avez besoin d'une mise à jour en temps quasi réel, cela ne fonctionne évidemment pas car vous devriez avoir beaucoup de sondages pour le faire, mais si vous avez besoin d'une minute ou plus pour obtenir des mises à jour, l'interrogation la réponse.

Questions connexes