我们的应用程序使用WCF而非命名管道在同一台机器上的应用程序的两个进程之间进行通信。我们的应用程序已在多个客户端字段中运行,几年来没有任何问题。但最近我们从一个客户端领域收到的问题是,由于客户端存在一个第三方应用程序,我们的应用程序正在中断。
当第三方应用程序在客户端运行时,我们的应用程序进程的“服务”端启动,并且创建WCF端点没有问题。但是当我们的应用程序进程的“客户端”开始并尝试连接到“服务”端时,它会因EndpointNotFoundException而失败。
我们使用的端点地址格式类似于“net.pipe:// localhost / TestAPI / Endpoint”。
这篇文章“WCF named pipes unknown error”帮助我了解了我的问题的根本原因。通过这篇文章我知道,在管理员模式下作为服务在客户端运行的第三方应用程序以“net.pipe:// localhost /”格式打开一个端点地址。此时,当我们使用管理员模式杀死第三方应用程序或运行我们的应用程序进程的“服务”端而没有杀死第三方应用程序成功启动我们的应用程序。
下面提到的各种链接都可以在互联网上找到,这些链接正在讨论这个问题但是没有给出任何解决这个问题的方法:
3rd party app breaks our WCF application
请给我们解决这个问题如何解决我们的应用程序进程的“客户端”如何成功启动而不会杀死违规的第三方应用程序或者在管理模式下没有运行我们的应用程序“服务”端进程?