2011-05-23 93 views
1

我是新的wcf并希望得到一些解释,我在一个项目中有多个WCF服务(假设service01-service05使用每个会话模式),现在我想知道什么时候我会创建一个客户端,调用service01然后service02等等,它会创建单个会话还是session01,session02(针对每个服务单独会话)等等。多个WCF服务之间的会话

如果是单独会话,那么在调用multile服务时如何处理单个会话。

回答

2

会有一个会话PER WCF服务实例。 WCF在内存中保存会话状态,并根据每个代理服务端点管理它。

这也意味着如果您每次调用kill并重新创建一个新的代理实例,您将失去会话状态。

+0

好吧,我明白了,但如果我想维护多个服务的单一会话,那么我该怎么办?实现功能(企业级项目)更重要的一点是创建多个服务或仅具有多个接口的单一服务会更好。我的主要担忧是现在的可玩性。 – user765573 2011-05-23 11:19:54

+0

您无法为多个服务维护单个会话,因为WCF会为每个代理管理每个服务端点的会话状态。拥有多个服务意味着拥有多个端点(每个服务至少有一个端点),因此多个服务不能共享会话状态。 你可能做的是,存储状态不是在会话数据中,而是在数据库或缓存机制中,然后在服务方法调用中传递会话ID。您需要一种方法来确保会话数据得到清理。 – 2011-05-23 11:32:58