【问题标题】:How does WCF InstanceContextMode affect the creation of a singleton in the service's data access layer?WCF InstanceContextMode 如何影响服务数据访问层中单例的创建?
【发布时间】:2013-12-09 00:52:19
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: wcf


    【解决方案1】:

    简短回答:不,不会影响。

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

    【讨论】:

    • 谢谢瑞恩。似乎 WCF InstanceContextMode 与 AppDomain 中的实例化无关。
    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 2011-03-14
    • 2015-01-12
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    相关资源
    最近更新 更多