我有两个需要互相交流的应用程序。我在每个应用程序中都实现了一个WCF服务,它们都打开了从另一个应用程序接收请求的通道。麻烦的是,当两个频道都打开时,我得到一个“没有端点监听net.pipe:// localhost,可以接受该消息”异常。
如果我只打开其中一个,那么他们都会工作。我如何实现双向WCF,或至少允许两个应用程序作为服务器和客户端?
标记
答案 0 :(得分:1)
你的问题显示出混乱,让我更加困惑。第一步:你到底在想什么?你想要两个应用程序进行通信吗?那么一般来说你需要一个'服务器'和一个'客户'。使用双工通信,双方可以向另一方发出消息,而无需请求响应(如HTTP)。
因此,让第一个启动的应用程序充当服务器,将其他应用程序充当客户端。要充当客户端,您可以使用服务引用,一种强类型的WCF客户端。
答案 1 :(得分:1)
您可以在每个应用中实施服务器。他们必须监听不同的端点(不同的标识符)。然后每个应用程序都需要一个客户端连接另一个应用程序中的服务器。
这样两个应用程序都可以类似地实现,但是是独立的。实际上,您可以创建一个同时具有服务器/客户端的程序集,并通过应用程序配置(app.config)配置端点。
使用一台服务器/一台客户端是否更好应取决于应用程序的实际任务。如果他们是平等的,就很难分辨谁是服务器,谁是客户。