【发布时间】:2014-11-28 16:55:00
【问题描述】:
您好,我的 WCF 服务有一个服务构造函数。理想情况下应该只初始化一次。但是我看到每隔几分钟就会调用一次服务构造函数。是否有一些时间值或其他一些配置设置可以限制否。对构造函数的调用次数。
【问题讨论】:
标签: wcf constructor
您好,我的 WCF 服务有一个服务构造函数。理想情况下应该只初始化一次。但是我看到每隔几分钟就会调用一次服务构造函数。是否有一些时间值或其他一些配置设置可以限制否。对构造函数的调用次数。
【问题讨论】:
标签: wcf constructor
WCF 服务类的创建(以及构造函数的调用)取决于服务InstanceContextMode 值。根据其value(例如 PerCall、PerSession、Single)创建服务实例。
您可以将值设置为Single,这将使类的行为类似于单例。
【讨论】:
您可以使用静态构造函数来做到这一点。
如果构造函数需要初始化非静态属性,那么也许你需要的是一个单例 WCF 服务。 WCF 服务可以有不同的实例化模式(PerCall、PerSession 和 Single)
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
请注意,单一实例化模式可能无法扩展。
你可以阅读更多关于service instance management here
【讨论】: