【问题标题】:WCF service constructorWCF 服务构造函数
【发布时间】:2014-11-28 16:55:00
【问题描述】:

您好,我的 WCF 服务有一个服务构造函数。理想情况下应该只初始化一次。但是我看到每隔几分钟就会调用一次服务构造函数。是否有一些时间值或其他一些配置设置可以限制否。对构造函数的调用次数。

【问题讨论】:

    标签: wcf constructor


    【解决方案1】:

    WCF 服务类的创建(以及构造函数的调用)取决于服务InstanceContextMode 值。根据其value(例如 PerCall、PerSession、Single)创建服务实例。

    您可以将值设置为Single,这将使类的行为类似于单例。

    【讨论】:

      【解决方案2】:

      您可以使用静态构造函数来做到这一点。

      如果构造函数需要初始化非静态属性,那么也许你需要的是一个单例 WCF 服务。 WCF 服务可以有不同的实例化模式(PerCall、PerSession 和 Single

      [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
      

      请注意,单一实例化模式可能无法扩展。

      你可以阅读更多关于service instance management here

      【讨论】:

      • 该服务托管在哪里? IIS?视窗服务?如果应用 AppDomain 被卸载(即:IIS 池回收),显然服务构造函数将被再次调用。
      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2010-09-27
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2011-10-01
      • 2011-05-04
      相关资源
      最近更新 更多