WCF服务端运行时架构体系详解[下篇]

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 18:32 点击:

 

 

作为WCF中一个核心概念,终结点在不同的语境中实际上指代不同的对象。站在服务描述的角度,我们所说的终结点实际上是指ServiceEndpoint对象。如果站在WCF服务端运行时框架来说,终结点实际上指代的是终结点分发器(EndpointDispatcher)。而ServiceEndpoint与EndpointDispatcher是一一匹配的,并且前者是创建后者的基础。而终结点分发器具有自己的运行,即分发运行时(DispatchRuntime)。

目录

一、终结点分发器(EndpointDispatcher)

二、分发运行时(DispatchRuntime)

      可扩展组件            

            认证与授权

            服务实例上下文

            会话关闭通知

            同步上下文

            消息检验

            操作与操作选择

   可扩展属性

           授权

           审核

           事务与会话

           未处理操作

           SOAP ValidateMustUnderstand处理

           并发控制

一、终结点分发器(EndpointDispatcher)

除了之前介绍的三个辅助信道分发器向匹配的终结点分发器实施消息路由的三个属性(AddressFilter、ContractFilter和FilterPriority)之外,你还可以通过属性ContractName和ContractNamespace得到服务契约的名称和命名空间,以通过EndpointAddress属性得到相应的终结点地址。将消息路由到该终结点分发器的信道分发器可以通过属性ChannelDispatcher获得。但是对于终结点分发器来说,其重要的还是通过属性DispatchRuntime表示的分发运行时。

   1: public class EndpointDispatcher

   2: {

   3:     //其他成员

   4:     public string ContractName { get; }

   5:     public string ContractNamespace { get; }

   6: 

   7:     public MessageFilter AddressFilter { get; set; }

   8:     public MessageFilter ContractFilter { get; set; }

   9:     public int FilterPriority { get; set; }

  10: 

  11:     public ChannelDispatcher ChannelDispatcher { get; }

  12:     public DispatchRuntime DispatchRuntime { get; }

  13:     public EndpointAddress EndpointAddress { get; }

  14: }

 

二、分发运行时(DispatchRuntime)

毫不夸张地说,终结点分发器的分发运行时是WCF整个服务端运行时架构体系的核心,同时也是对WCF服务端服务模型进行扩展重点考虑的对象。分发运行时之所以具有如此重要的地位,原因在于:终结点分发器接收到从信道分发器路由的消息的整个处理是在分发运行时中进行的。

和上面分析信道分发器一样,我们首先来看看分发运行时具有哪些可扩展的组件。终结点的分发运行时对应的类型为DispatchRuntime。下面的代码片断列出了这些扩展组件在DispatchRuntime中的对应的属性定义。

   1: public sealed class DispatchRuntime

   2: {

   3:     //其他成员

   4:     public ServiceAuthorizationManager ServiceAuthorizationManager { get; set; }

   5:     public ServiceAuthenticationManager ServiceAuthenticationManager { get; set; }

   6:     public RoleProvider Ro

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • 浅析.NET下XML数据访问新机制
    • asp.net 面试+笔试题目第1/2页
    • C# 邮件地址是否合法的验证
    • asp.net 设置GridView的选中行的实现代码
    • C#高级编程:数据库连接[1]
    • 经典C++程序1
    • IIS 自动回收导致后台定时器失效的问题解决
    • ASP.NET GridView列表代码示例
    • Asp.net MVC源码分析--Action Filter的链式调用
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1