【问题标题】:WCF - Webhttpbinding, see significant difference between PerCall and PerSessionWCF - Webhttpbinding,查看 PerCall 和 PerSession 之间的显着差异
【发布时间】:2013-07-17 07:53:55
【问题描述】:
我已尝试配置我的 wcf webhttpbinding(restful)服务 PerSession 和 PerCall。
据我了解,webhttpbinding 不使用会话来满足 restful 原则,但是当从 LoadUI 对我的服务施加负载时,我发现性能存在显着差异。
Persession 和 PerCall 的行为方式不应该相同,因为每次调用都会创建一个新的服务实例,因为 webhttpbinding 中没有会话。
【问题讨论】:
标签:
.net
wcf
rest
webhttpbinding
instancecontextmode
【解决方案1】:
REST 服务架构是无状态的,请参阅 (REST WS),因此使用带有
的 REST 服务毫无意义
InstanceContextMode = PerSession.
使用PerSession(但可能出现并发问题)的性能改进是针对
SOAP 网络服务。
回答您的问题,我相信这是一个幸运的系列事件(数据库连接池、数据库缓存等),您看到了性能提升。
由于InstanceContextMode.PerCall 是 WCF 的无状态模式,它也是您的休息服务的实例化模式,即使您将 PerSession 指定为 InstanceContextMode。