WCF 的 Service Instance模式和并发处理
WCF 的 Service Instance(实例)有三种模式
PerCall:每一次调用都创建一个实例,每一次调用结束后回收实例。此模式完全无状态。
PerSession:调用者打开Channel时创建实例,当调用者关闭Channel时关闭实例,在关闭前,所有的调用都是同一个实例。此模式有Session,生命周期由调用者(通常是客户端)决定。
Singleton:单例模式,在Service挂到Host上时,实例就已经创建了,此后所有的调用都使用此实例,且客户端关闭Channel时,并不回收实例。
WCF默认使用PerSession。
并发处理
PerCall:不区分调用者,N次请求则创建N个实例处理。
PerSession:N个调用者则创建N个实例处理。
Singleton:一个实例处理N个调用者的N次请求,同一时刻只有一个请求被处理,当前请求未处理完又有新请求时,自动队列请求。