WCF中的上下文和实例
我正在阅读Juval Löwy的编程WCF服务。它提到: 在WCF中,我们拥有实例所在的上下文。默认情况下,上下文的生存期与它承载的实例的生存期相同。我们两个都可以有各自的生命周期。 WCF还允许上下文在没有关联实例的情况下存在WCF中的上下文和实例,wcf,Wcf,我正在阅读Juval Löwy的编程WCF服务。它提到: 在WCF中,我们拥有实例所在的上下文。默认情况下,上下文的生存期与它承载的实例的生存期相同。我们两个都可以有各自的生命周期。 WCF还允许上下文在没有关联实例的情况下存在 为什么我们要释放实例并保持上下文为空?巧合的是,我最近读了您可能提到的章节。在他的书中,Löwy解释了为什么这可能是有用的。他首先写道: WCF还允许上下文在没有关联实例的情况下存在。我将这种实例管理技术称为上下文停用 在提到这一点后,他接着说,这通常是通过使用带有特定
为什么我们要释放实例并保持上下文为空?巧合的是,我最近读了您可能提到的章节。在他的书中,Löwy解释了为什么这可能是有用的。他首先写道: WCF还允许上下文在没有关联实例的情况下存在。我将这种实例管理技术称为上下文停用 在提到这一点后,他接着说,这通常是通过使用带有特定属性的OperationBehavior来完成的,并提示您何时可以使用它: 您通常会对某些但不是所有的服务方法应用实例停用,或者对不同的方法应用不同的值。[…]您通常偶尔应用它的原因是,如果您统一应用它,最终将得到一个类似于每次调用的服务,在这种情况下,您最好按照每次调用配置服务 因此,您可以使用此“停用”来确保在具有会话的服务中,只有某些方法的行为就像它们是每次调用服务的一部分一样。上述MSDN文章也用不同的措辞对此进行了解释: 使用ReleaseInstanceMode属性指定WCF在执行方法过程中何时回收服务对象。默认行为是根据InstanceContextMode值回收服务对象。设置ReleaseInstanceMode属性会更改该默认行为。在事务场景中,ReleaseInstanceMode属性通常用于确保在处理方法调用之前清理与服务对象关联的旧数据
在以下情况下,从实例断开上下文是有意义的: