zoukankan      html  css  js  c++  java
  • WCF消息可靠性于有序传递

    WCF作为一项通讯技术,必须保证传输的可靠性与 消息的可靠性

    传输可靠性:指的是点对点可靠性,确保数据包按顺序到达。它不受网络等因素的影响

    消息可靠性:指提供了消息端对端的保证,确保消息的顺序无误。如果传输失败,它还能提供重试功能自动处理网络阻塞、消息缓存、流控制,根据具体情况适时调整发送消息数。它还能通过对连接的验证管理连接自身,并在不需要的时候清除连接
     

    理论上,WCF服务的实现与服务契约的定义与它使用的绑定以及属性无关。实际上,服务处理消息以及契约定义都可能与消息的有序传递有关。在WCF中使用DeliveryRequirementsAttribute来对服务或者契约应用这种约束。

    复制代码
    [AttributeUsage(AttributeTargets.Interface | AttributeTargets.Class, AllowMultiple=true)]
    public sealed class DeliveryRequirementsAttribute : Attribute, IContractBehavior, IContractBehaviorAttribute
    {
        private Type contractType;
        private QueuedDeliveryRequirementsMode queuedDeliveryRequirements;
        private bool requireOrderedDelivery;

    复制代码
     

    如果 DeliveryRequirementsAttribute 应用于契约上,则实现此种契约的服务都应用可靠的有序传递的约束。如:

     
    复制代码
        [ServiceContract]

        [DeliveryRequirements(RequireOrderedDelivery = true)]
        public interface ICalculator1
        {
            [OperationContract]
            int Add(int x, int y);
        }

    复制代码
     
    如果应用于实现某契约类型的服务,则只有此服务应用可靠的有序传递的约束。
     
    复制代码
        [DeliveryRequirements(RequireOrderedDelivery = true)]

        publicclass CalculationService : ICalculator1
        {
            /**/
        }

    复制代码
     

    如果实现契约的服务实现多个服务契约,也可以通过DeliveryRequirements指定只有支持某种契约终结点的服务才应

    用这种可靠的有序传递的约束。如下:

    [DeliveryRequirements(RequireOrderedDelivery = true, TargetContract = typeof (ICalculator1))]
    public class CalculationService : ICalculator1, ICalculator2
    {    
            /**/
    }
     

    RequireOrderedDelivery默认为False,如果在接口或者服务类上使用Delivery却不设置,RequireOrderedDelivery

    则也是不会开启有序传递的。

     
    分类: WCF基础
  • 相关阅读:
    Linux内核将要支持最新龙芯3A2000/3B2000
    微软拥抱Linux,着实太晚了
    武校学生
    第一篇 SCI 综述被接收的感想
    如何使用Rally+Docker测试OpenStack
    (OK) ntp——linux设置系统时间—RHEL—FEDORA—CENTOS
    理解 Linux 网络栈(2):非虚拟化Linux 环境中的 Segmentation Offloading 技术
    (OK) find-alter-files.sh——递归
    (OK) digui-gb18030-utf8.sh——递归
    (OK) digui-dir-del-M.sh——递归
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2536179.html
Copyright © 2011-2022 走看看