WCF InstanceContextMode如何影响服务数据访问层中单例的创建?

时间:2013-12-09 00:52:20

标签: wcf

我有一个位于ASMX Web服务前面的WCF服务。此ASMX服务是我的远程系统的数据访问机制。我将此连接创建为单例,因为第一次调用大约需要10秒,而后续调用大约需要一秒钟。

目前,我正在使用netTcpBinding通过控制台测试主机测试该服务。在生产中,我们将使用wsHttpBinding将其托管在IIS中。

我的期望是在我的数据访问层中有一个持久的单例我必须将InstanceContextMode设置为Single。到目前为止,无论我将InstanceContextMode设置为(PerCall,PerSession还是Single),我都没有看到任何时序差异。我无法确定我的测试是否反映了现实。

所以我的问题是我的InstanceContextMode会影响这个单例对象的创建吗?如果是这样,怎么样?

1 个答案:

答案 0 :(得分:1)

简答:不,它不会影响它。

更长的答案: 如果要在ASMX连接的类中使用静态变量创建单例,那么每个AppDomain实例只会存在一次,无论如何。这意味着您的WCF InstanceContextMode不会影响对Singleton的调用,因为WCF服务的每个实例只会从静态变量中获取单个实例。