我试图同时配置我的 wcf webhttpbinding (restful) 服务 PerSession 和 PerCall。
据我了解,webhttpbinding 不使用会话来满足 restful 原则,但是当从 LoadUI 对我的服务施加负载时,我发现了显着的性能差异。
Persession 和 PerCall 不应该以相同的方式运行,因为每次调用都会创建一个新的服务实例,因为 webhttpbinding 中没有会话。
我试图同时配置我的 wcf webhttpbinding (restful) 服务 PerSession 和 PerCall。
据我了解,webhttpbinding 不使用会话来满足 restful 原则,但是当从 LoadUI 对我的服务施加负载时,我发现了显着的性能差异。
Persession 和 PerCall 不应该以相同的方式运行,因为每次调用都会创建一个新的服务实例,因为 webhttpbinding 中没有会话。
REST 服务架构是无状态的(REST WS),因此使用 REST 服务是没有意义的
InstanceContextMode = PerSession.
使用PerSession
(但可能会出现并发问题)的性能改进适用于 SOAP Web 服务。
回答您的问题,我相信这是您看到性能提升的一系列幸运事件(数据库连接池、数据库缓存等)。
与InstanceContextMode.PerCall
WCF 的无状态模式一样,它也是您的休息服务的实例化模式,即使您指定了PerSession
as InstanceContextMode
。