Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WCF中的默认InstanceContextMode_.net_Wcf_C# 4.0_Servicebehavior - Fatal编程技术网

.net WCF中的默认InstanceContextMode

.net WCF中的默认InstanceContextMode,.net,wcf,c#-4.0,servicebehavior,.net,Wcf,C# 4.0,Servicebehavior,在WCF中,如果我们没有特别指定ServiceBehavior的InstanceContextMode,那么下面的默认模式是什么 珀索尔 迫害 单身 谢谢。上面提到的默认值是PerSession。但我相信这也取决于所使用的绑定(绑定是否支持会话),就像basichttpbinding使用PerCall它所说的默认值是PerSession。但我相信这也取决于所使用的绑定(绑定是否支持会话),就像basichttpbinding使用PerCall简单的答案是默认的实例化模式是PerSession 提

在WCF中,如果我们没有特别指定ServiceBehavior的InstanceContextMode,那么下面的默认模式是什么

  • 珀索尔
  • 迫害
  • 单身

  • 谢谢。

    上面提到的默认值是
    PerSession
    。但我相信这也取决于所使用的绑定(绑定是否支持会话),就像basichttpbinding使用
    PerCall
    它所说的默认值是
    PerSession
    。但我相信这也取决于所使用的绑定(绑定是否支持会话),就像basichttpbinding使用
    PerCall
    简单的答案是默认的实例化模式是
    PerSession

    提供:

    • 您正在使用的会话类型支持会话
    • 请参阅[绑定类型会话支持]()
    • 如果频道未创建会话,则其行为就像是
      PerCall
    • 服务合同允许会话-默认值为“允许”
    下面是一个Microsoft提供的示例,代码中强制配置了默认值。

    我发现在这篇Microsoft文章()中阅读有关会话的内容对于理解会话是如何打开和关闭的以及这与实例和并发性的关系特别有启发性

    默认情况下,WCF客户端将创建一个新会话,该会话将创建一个服务器实例,会话期间的所有调用称为会话,并由服务器的单个实例(实例)提供服务,该实例具有专用于该会话/客户端/会话的单个线程(并发性)

    如果在WCF中使用默认实例行为,则WCF客户端对象之间的所有调用都由同一服务实例处理。因此,在应用程序级别,您可以将会话视为启用与本地调用行为类似的应用程序行为。例如,创建本地对象时:

    调用构造函数

    对WCF客户端对象引用的所有后续调用都由同一对象实例处理

    销毁对象引用时调用析构函数

    只要使用默认的服务实例行为,会话就可以在客户端和服务之间启用类似的行为


    希望这对其他人有所帮助,因为我花了一些时间才找到答案。

    简单的答案是默认的实例化模式是
    PerSession

    提供:

    • 您正在使用的会话类型支持会话
    • 请参阅[绑定类型会话支持]()
    • 如果频道未创建会话,则其行为就像是
      PerCall
    • 服务合同允许会话-默认值为“允许”
    下面是一个Microsoft提供的示例,代码中强制配置了默认值。

    我发现在这篇Microsoft文章()中阅读有关会话的内容对于理解会话是如何打开和关闭的以及这与实例和并发性的关系特别有启发性

    默认情况下,WCF客户端将创建一个新会话,该会话将创建一个服务器实例,会话期间的所有调用称为会话,并由服务器的单个实例(实例)提供服务,该实例具有专用于该会话/客户端/会话的单个线程(并发性)

    如果在WCF中使用默认实例行为,则WCF客户端对象之间的所有调用都由同一服务实例处理。因此,在应用程序级别,您可以将会话视为启用与本地调用行为类似的应用程序行为。例如,创建本地对象时:

    调用构造函数

    对WCF客户端对象引用的所有后续调用都由同一对象实例处理

    销毁对象引用时调用析构函数

    只要使用默认的服务实例行为,会话就可以在客户端和服务之间启用类似的行为

    希望这能帮助某人,因为我花了一些时间才找到答案。

    可能的重复
    [ServiceBehavior(  
    AutomaticSessionShutdown=true,  
    ConcurrencyMode=ConcurrencyMode.Single,  
    InstanceContextMode=InstanceContextMode.PerSession,  
    IncludeExceptionDetailInFaults=false,  
    UseSynchronizationContext=true,  
    ValidateMustUnderstand=true)]
    public class CalculatorService : ICalculator { ... }