Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
.net 与WCF的双工通信,无回拨合同_.net_Wcf_Named Pipes_Duplex_Inter Process Communicat - Fatal编程技术网

.net 与WCF的双工通信,无回拨合同

.net 与WCF的双工通信,无回拨合同,.net,wcf,named-pipes,duplex,inter-process-communicat,.net,Wcf,Named Pipes,Duplex,Inter Process Communicat,在以下场景中使用WCF的最佳实践是什么 基本描述 有几个模块(程序)将提供WCF服务。每个应用程序可以启动多次。通常情况下,这些应用程序是从一种管理控制台启动的,但也可以手动启动 WCF设置 我目前正在使用NetNamedPipeBinding。地址为“net”的ServiceHost。pipe://localhost“和以程序名作为相对地址的端点。因此,要访问该服务,我将使用“net”。pipe://localhost/module1“比如说 我的问题 启动同一模块的另一个实例时,如何防止获取

在以下场景中使用WCF的最佳实践是什么

基本描述

有几个模块(程序)将提供WCF服务。每个应用程序可以启动多次。通常情况下,这些应用程序是从一种管理控制台启动的,但也可以手动启动

WCF设置

我目前正在使用NetNamedPipeBinding。地址为“net”的ServiceHost。pipe://localhost“和以程序名作为相对地址的端点。因此,要访问该服务,我将使用“net”。pipe://localhost/module1“比如说

我的问题

  • 启动同一模块的另一个实例时,如何防止获取AddressalReadyUseException?我的想法是为每个实例使用一个id。但是我无法跟踪他们。(f.e.如果第一个实例已经关闭,模块2如何知道模块1的哪个实例可用)。另一个想法是使用某种全局模块来处理实例。如果我决定只让一个实例注册服务,而所有其他实例都会失败,那么我也会遇到同样的问题
  • 模块如何向管理应用程序报告其已完成所有初始化?据我所知,CallbackContract只能用于在ServiceContract的方法调用期间调用回调。那么,我必须在管理应用程序本身上启动服务吗?我认为管理应用程序是客户端而不是服务器,因为它不会一直可用