Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我应该使用WCF双工还是在本地IPC中手动创建两个通道?_C#_.net_Wcf_Ipc_Duplex - Fatal编程技术网

C# 我应该使用WCF双工还是在本地IPC中手动创建两个通道?

C# 我应该使用WCF双工还是在本地IPC中手动创建两个通道?,c#,.net,wcf,ipc,duplex,C#,.net,Wcf,Ipc,Duplex,我正在开发一个由两个独立进程(.exe文件)组成的应用程序。ProcessA和ProcessB需要以双向方式进行通信。两个示例说明了这两个过程的通信类型,我将简单介绍我的功能请求: ProcessA是一个“看门狗进程”,它监视ProcessB是否启动并运行。ProcessA还应向ProcessB提供配置 ProcessB是具有业务逻辑的主要应用程序。如果出现严重错误,ProcessB应通知ProcessA,以便ProcessA 我决定用使用本地管道的WCF实现它们之间的通信,因为进程在同一台

我正在开发一个由两个独立进程(.exe文件)组成的应用程序。ProcessA和ProcessB需要以双向方式进行通信。两个示例说明了这两个过程的通信类型,我将简单介绍我的功能请求:

  • ProcessA是一个“看门狗进程”,它监视ProcessB是否启动并运行。ProcessA还应向ProcessB提供配置

  • ProcessB是具有业务逻辑的主要应用程序。如果出现严重错误,ProcessB应通知ProcessA,以便ProcessA

我决定用使用本地管道的WCF实现它们之间的通信,因为进程在同一台机器上。由于这两个进程都需要发送和接收“消息”,我想知道这样做是否更好:

  • 通过WCF双工功能(例如,实现一个服务契约,然后在其上设置CallbackContract属性)
  • 通过创建两个单独的WCF服务—每个进程一个(例如ProcessA将实现IProcessService合约,而ProcessB将实现IProcessService)。然后ProcessA将使用IProcessService,ProcessB将使用IProcessService 我不确定哪种方法更好,因为我想避免太多复杂的逻辑来同步这些过程的通信方式。欢迎提供有关此场景的任何指南或最佳实践提示