如何解决这个WCF问题?

如何解决这个WCF问题?,wcf,wcf-client,Wcf,Wcf Client,有一个WCF计划(我称之为“ABC”)。 此WCF程序(“ABC”)可以承载服务或连接到承载其他“ABC”的服务。所以,“ABC”可以是宿主程序或客户端程序。 首先“ABC”发现托管的任何服务(如果找到)都连接到该服务。 或主持服务 如果一个“ABC”开始,然后另一个“ABC”开始,那么首先开始的“ABC”将是主机,之后开始的“ABC”将是客户端 在这一点上,我有一个问题。 如果两个“ABC”同时启动,则两个“ABC”无法找到托管服务all和host。我想解决这个问题。 虽然两个“ABC”同时启

有一个WCF计划(我称之为“ABC”)。 此WCF程序(“ABC”)可以承载服务或连接到承载其他“ABC”的服务。所以,“ABC”可以是宿主程序或客户端程序。 首先“ABC”发现托管的任何服务(如果找到)都连接到该服务。 或主持服务

如果一个“ABC”开始,然后另一个“ABC”开始,那么首先开始的“ABC”将是主机,之后开始的“ABC”将是客户端

在这一点上,我有一个问题。 如果两个“ABC”同时启动,则两个“ABC”无法找到托管服务all和host。我想解决这个问题。
虽然两个“ABC”同时启动,但第一个应该是主机,第二个应该是客户端。我怎么能这样呢?还有其他好的算法吗?

一种方法是使用一个中心位置来跟踪主机实例是否正在运行。让每个实例调用它,并说他们想成为一个主机实例,然后让它返回一个值,指示是否有一个主机实例已经在运行(或者换句话说,指示调用者是否应该是一个主机实例)。根据回复,让每个实例进入适当的模式。让服务器跟踪状态并等待运行的主机实例崩溃,然后您就可以观看焰火了……

这看起来很奇怪。。。曾经是服务器、曾经是客户端的应用程序。。。取决于什么时候开始。。。古怪的你们到底想做什么?我想实现一个关于发现和即席的wcf程序。所以,我需要这样做。仍然-看起来很奇怪,一个应用程序应该是一个服务,一个客户端。另外:假设两个“ABC”实例突然发现它们都是服务器-您如何知道/决定哪一个需要“变形”为客户端??如何确保两者都不被转换??看起来很奇怪……谢谢你的回复。但是我想在没有任何服务器或中心位置的情况下解决这个问题。只有彼此相同的“ABC”才能解决这种情况。