2011-02-25 3 views
0

Il existe un programme WCF (j'appellerai cela "ABC"). Ce programme WCF ("ABC") peut héberger un service ou se connecter au service hébergeant un autre "ABC". Ainsi, "ABC" peut être un programme hôte ou un programme client. Tout d'abord "ABC" découvrir que tout service qui hébergé, si trouver, se connecter au service. ou héberger le service.Comment puis-je résoudre ce problème WCF?

Si un "ABC" démarre, puis que l'autre "ABC" commence, "ABC" qui commence en premier sera hôte, et "ABC" qui commence après sera client.

En ce moment j'ai une question. Si deux "ABC" démarrent en même temps, les deux "ABC" ne parviennent pas à trouver un service hébergé all, et hébergent respectivement chacun. Je veux résoudre ceci. Bien que deux "ABC" commencent simultanément, le premier devrait être l'hôte, et le second devrait être client. Comment puis-je cela? Un autre bon algorithme?

+2

Cela semble assez bizarre ... une application qui était autrefois un serveur, une fois un client ... en fonction de quand ça commence ... bizarre ... qu'est-ce que tu essaies de faire, finalement ?? –

+0

Je veux implémenter le programme wcf sur la découverte et Ad-hoc. Donc, j'ai besoin de faire cette situation. – dngchn

+0

Toujours - semble très étrange qu'une seule application devrait être une fois un service, une fois un client. Aussi: supposons soudainement que deux instances de "ABC" découvrent qu'elles sont toutes deux des serveurs - comment savez-vous/décidez lequel doit "se transformer" en client? Comment vous assurez-vous que les deux ne se convertissent pas? Semble étrange ..... –

Répondre

0

Une approche consiste à avoir un emplacement central qui suit si une instance hôte est en cours d'exécution. Chaque instance l'appelle et dit qu'elle veut être une instance d'hôte, et qu'elle renvoie une valeur indiquant si une instance d'hôte est déjà en cours d'exécution ou non (autrement dit, si l'appelant doit être être un hôte exemple). Demandez à chaque instance d'entrer dans le mode approprié en fonction de la réponse. Laissez le serveur suivre l'état et attendez que l'instance de l'hôte en cours se bloque, alors vous pouvez regarder les feux d'artifice ...

+0

Merci votre réponse. mais je veux résoudre ce problème sans aucun serveur ou emplacement central. seulement les uns les autres mêmes "ABC" devraient résoudre ces situations. – dngchn

Questions connexes