谁能帮我解答《WCF服务编程》第4章实例管理的疑问?

第一个问题:单调服务的执行细节:

单调服务如图所示:
 figure-4.1.gif
执行步骤如下:
1. 客户端调用代理,代理将调用转发给服务。
2. WCF创建一个服务实例,然后调用服务实例的方法。
3. 当方法调用返回时,如果对象实现了IDisposable接口,WCF将调用IDisposable.Dispose()方法。
4. 客户端调用代理,代理将调用转发给服务。
5. WCF创建一个对象,然后调用对象的方法。

 问题:当步骤3完成,即“方法调用返回时”,用于调用该方法的服务实例(就是步骤2创建的那个实例),是否被销毁?
         为什么步骤5又要创建一个新的服务对象调用方法?对象不是在步骤2中创建了吗?方法不是在步骤3中返回了吗?
         单调的过程到底如何理解?

第二个问题:如何理解单调服务和会话服务中服务实例的生存期?
        单调服务实例只存在于客户端的调用过程中,每次客户端发出请求,就会获得一个新建的专门的服务实例。我的理解是单调实例的生存期
  从客户端调用开始到服务方法返回后结束。
        再看会话服务,应用会话服务时,当客户端为该服务创建一个新的代理时,就会获得一个新建的专有的服务实例,该实例一直保留在服务
  中直到客户端不再需要它。我的理解是会话服务中的服务实例,在客户端调用时创建,到客户端不需要时销毁,那么服务方法调用结束返回时,
  能否认为就是“客户端不再需要”呢?如果答案是肯定的,单调服务实例的和会话服务实例的生存期有什么区别(两者都是客户端调用时创建,
  服务返回时销毁)?如果答案是否定的,当服务方法返回时,此时服务实例没有销毁,在等待客户端再次调用,此时客户端和服务之间是否有维
  系着一条通信通道呢,即所谓的服务资源被占用?何时才能算“客户端不再需要”?
       另外,会话服务能不能比照Asp.net里的Session来理解,我觉得很像。

我刚开始学WCF见笑了,望大家指点。。。。

posted @ 2008-06-02 23:46  DreamTrue  阅读(276)  评论(2编辑  收藏  举报