zoukankan      html  css  js  c++  java
  • WCF 第五章 行为 总结

    行为是WCF架构中一个重要的扩展点。它们在客户端或者服务端运行时(runtime)被构造时以及每个服务调用时使用。当运行时启 动时,它通过检测传递给ClientChannel的类型结构或者ServiceHost来寻找行为,然后在配置文件中寻找。行为也可以在代码中和在打开 ServiceHost之前添加到ServiceDescription 对象中定义,或者通过在代码中使用属性,或者在配置文件中。

      行为实现检测器-检测提供给它们的对象的代码。在消息层有消息检测器运行,在操作参数上有参数检测器运行。在操作层,行为主要负责为一个给定的SOAP输入消息选择调用哪个方法运行并再次调用那个方法。

      行为控制服务类和它们的操作的实例和并发。实例由InstanceContextMode设置控制,可以是Single, PerCall或者PerSession.并发由ConcurrencyMode设置控制并可以是Single, Multiple或者Reentrant(单一的,但是是线程安全的代码)。他们一起控制一个服务的并发层次,如果将并发看成一个频谱,那么从为所有调用 只创建一个实例的起点开始到为每次调用创建一个实例的终点结束都可以控制。服务行为也允许你限制并发调用,实例或者会话的数量。

      一个重要的服务行为是serviceMetadata行为。这个行为在WSDL中暴露WCF类型系统和ServiceDescription模型以便于客 户端知道在哪里去找服务,如何使用服务以及要与服务进行什么消息通信。更普遍来说,serviceMetadata终结点使用WS-MEX协议以便于它可 以与不同平台的客户端通信并在很多格式中返回元数据信息。仅仅当一个服务包含这个行为时它才会暴露WSDL。这与很多开发人员以前使用的ASMX不 同,ASMX默认情况下暴露WSDL.

      WCF在行为中实现了生命周期短的,ACID形式的事务。事务可以在一个服务中或者跨越不同服务的边界流转。事务在操作行为层实现,尽管在终结点和服务层 都要满足特定的条件。例如,为了在客户端和服务端间进行事务流转,服务终结点必须使用一个支持会话的绑定,比如wsHttpBinding.会话必须在服 务端允许以便于事务可以在服务端边界间传输。操作行为允许开发人员确定事务的隔离级别,管理员可以控制超时属性。

      WCF支持三种事务管理器,一个是一个进程内的本地事务,一个是只用在Vista下的资源,另外一个是分布式事务协调器。额外的,跨越服务边界的通信可以使用一个Windows下才有的扩展RPC的事务协议,或者可以使用基于标准的WS-AT协议。

      自定义行为允许开发人员在服务端,终结点,契约或者操作层创建新的行为。这些行为允许当消息在客户端和服务端之间流转时对其进行检测和修改。它们也允许开发人员或系统管理员当服务启动时验证或者修改WCF运行时。

  • 相关阅读:
    927小程序繁星计划峰会 · 看完这七大话题 你会更了解阿里小程序
    不吹不黑,今天我们来聊一聊 Kubernetes 落地的三种方式
    虽然他们说是水题,但我觉得思想蛮好的
    新学dfs(看懂了)
    01背包,死记硬背(我是真的蠢)
    装箱问题(太笨、还没想通)
    高精度乘法,string中的坑
    双十一用python秒杀京东好货!
    高精度减法用string 和 stack
    n阶汉诺塔 记住吧。。
  • 原文地址:https://www.cnblogs.com/llbofchina/p/2094114.html
Copyright © 2011-2022 走看看