----------------------------------------------消息模式:
1.request\reply(默认)
2.one-way(单工)[Isoneway=true]
客户端有些情况希望保证消息能正确送达;(msmq(持久性的,机子重启后依然有效)和可靠性消息(短暂的)这两种技术保证)
应用:日志或发布,操作需要大量时间轮训场景,这样不需要等待;
3.Duplex(回调;双工)
操作必须声明为oneway;防止发生死锁;
回调接口不需要声明servicecontract
tcp和命名管道支持双工,http不支持;
--duplex案例:
--------------------------------------------双工:
 [ServiceContract(SessionMode = SessionMode.Required, CallbackContract =typeof(IReturnuser))]
     public interface Iuser
    {
         [OperationContract(IsOneWay=true)]
         void SetName(string name);
    }
     public interface IReturnuser
     {
         [OperationContract(IsOneWay = true)]
         void ReturnName(string name);
     }
-----------
 [ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]
   public class ServicUser:Iuser
    {
       IReturnuser callback
       {
           get { return OperationContext.Current.GetCallbackChannel<IReturnuser>(); }
       }
        public void SetName(string name)
        {
           callback.ReturnName(name+"123");
        }
    }
-----------
 public class CallbackHandler : myService.IService1Callback
    {
        public void Calculate(int result)
        {
            System.Windows.Forms.MessageBox.Show("结果为:" + result);
        }
    }
---------
 InstanceContext ic = new InstanceContext(new CallbackHandler());
            myService.Service1Client client = new wcfClient.myService.Service1Client(ic);
            client.AddNumer(3, 4);
-----大型消息传输:
比如:上传和下载数据;
1.在wcf的配置文件制定消息大小的配额;从而支持较大消息的支持;
21.开销解决方案:
消息传输优化机制:MTOM;(删除过多无用的信息并且处理base64编码多带来的数据开销,改进消息传输的整体性能;)
通过配置文件配置Binding节点信息;messageEncoding="Mtom",
MTOM,会加载到内存中;为了降低内存使用,使用流传输;
配置:
  <bindings>
    <wsHttpBinding>
     <binding name="sdf" maxReceivedMessageSize="5000000" messageEncoding="Mtom">
      <readerQuotas maxArrayLength="5000000"/>
     </binding>
    </wsHttpBinding>
   </bindings>
22流传输;特点:降低内存的使用量;但可靠性和安全性降低;
--标记流传输:
              <bindings>
    <basicHttpBinding>
     <binding name="sdf" transferMode="Streamed">
     </binding>
    </basicHttpBinding>
   </bindings>
--流传递支持三种绑定:netnamedpipebinding,nettcpbinding,basichttpbinding;
transferMode:值默认buffered(缓冲式),Streamed流传输;
23将消息切分成较小的切片;

wcf消息模式(随记)的更多相关文章

  1. 【WCF全析(一)】--服务协定及消息模式

    上周微软开发布会说.NET支持完全跨平台和并开放Core源码的新闻,让我们顿时感到.NET要迎来它的春天.虽然早在几年前.NET就能开发Android和IOS,但是这次的跨平台把Linux都放到了微软 ...

  2. 【架构之路之WCF全析(一)】--服务协定及消息模式

    上周微软开公布会说.NET支持全然跨平台和并开放Core源代码的新闻,让我们顿时感到.NET要迎来它的春天.尽管早在几年前.NET就能开发Android和IOS,可是这次的跨平台把Linux都放到了微 ...

  3. WCF初探-4:WCF消息交换模式之请求与答复模式

    请求与答复模式( Request/Reply) 这种交换模式是使用最多的一中,它有如下特征: 调用服务方法后需要等待服务的消息返回,即便该方法返回 void 类型 相比Duplex来讲,这种模式强调的 ...

  4. WCF消息交换模式之双工通讯(Duplex)

    WCF消息交换模式之双工通讯(Duplex) 双工通讯Duplex具有以下特点: 1它可以在处理完请求之后,通过请求客户端中的回调进行响应操作 2.消息交换过程中,服务端和客户端角色会发生调换 3.服 ...

  5. WCF系列教程之WCF消息交换模式之单项模式

    1.使用WCF单项模式须知 (1).WCF服务端接受客户端的请求,但是不会对客户端进行回复 (2).使用单项模式的服务端接口,不能包含ref或者out类型的参数,至于为什么,请参考C# ref与out ...

  6. wcf中的消息模式

    1请求响应模式 a.wcf中的消息模式默认是请求响应模式 b.返回值是void默认也是请求响应模式,可返回服务端的错误信息 c.客户端在请求后,当前线程停止真到接受收服务器的响应 [Opereatio ...

  7. 利用WCF双工模式实现即时通讯

    概述 WCF陆陆续续也用过多次,但每次都是浅尝辄止,以将够解决问题为王道,这几天稍闲,特寻了些资料看,昨晚尝试使用WCF的双工模式实现了一个简单的即时通讯程序,通过服务端转发实现客户端之间的通讯.这只 ...

  8. WCF入门教程3——WCF通信模式

    本章内容 请求/响应模式 单工模式 双工模式 WCF异步调用 请求与响应模式 请求/响应     请求/响应通信是指客户端向服务端发送消息后,服务端会向客户端发送响应.这也意味着在接收到服务的响应以前 ...

  9. [SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端

    原文:[SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端 之前开发基于WinForm监控的软件,服务端基于Wcf实现,里面涉及双工模式,在客户端里面,采用心跳包机制保持与服 ...

随机推荐

  1. Rabbitmq 加入用户訪控制台(guest无法登陆控制台问题)

    对于rabbitmq的guest用户无法訪问控制台的问题,是由于rabbitmq做了安全措施,禁止guest登陆控制台.须要我们自己创建用户进行登陆 1,运行加入用户命令 rabbitmqctl ad ...

  2. java线程API学习 线程池ThreadPoolExecutor(转)

    线程池ThreadPoolExecutor继承自ExecutorService.是jdk1.5加入的新特性,将提交执行的任务在内部线程池中的可用线程中执行. 构造函数 ThreadPoolExecut ...

  3. Dynamics CRM2013/2015 禁止欢迎屏幕(Disable the Welcome Screen)

    首先打开Dynamic CRM  2013将有一个欢迎界面的例子,下面的图,它不会为了图检查框出现.OK然后,下一次打开就没有. 可是当我们打开F12开发者工具,清除域的缓存后再次打开CRM,这个欢迎 ...

  4. js之面向对象----封装篇

    学习了一天的面向对象总结一下,共分为三类 - -! 老规矩 第一部分是概念性知识!!! 面向对象编程,我们可以把他想象成我们在造人.一个对象便是一个人,这个人有胳膊有腿,这便是一个对象的属性或者方法. ...

  5. poj 1061青蛙的约会

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 90083   Accepted: 16257 Descripti ...

  6. hive union all 使用

    功能:将两个表中的 同样的字段拼接到一起 測试: create external table IF NOT EXISTS temp_uniontest_ta ( a1 string, a2 strin ...

  7. Linux下一个C基本的编程----写进Blog在那之前

    展望2周的实习吧. 各种酸甜苦辣.由于公司只是广告.毛承保让我去.严重的歧视.想也想开,争夺.结果让它成为.还是把它写自己的学习经验,我有同样的希望和迷茫的同学.少走一点弯路.行.切入正题: 一.參考 ...

  8. 教你一步一步部署.net免费空间OpenShift系列之三------上传ASP.net程序

    接上回书,创建应用后,我们如何将自己的ASP.Net部署到应用空间呢,这里用WinSCP的SFTP协议进行上传和下载 上传ASP.net程序 下载WinSCP,并打开PuTTYGen 点击Genera ...

  9. MVC4

    MVC4 本地正常运行,发布到IIS7->403 - 禁止访问: 访问被拒绝. 摘要: 上周五代码编写完成,计划发布一个版本测试,没想到发布到IIS7 竟然报错“403-禁止访问”.还真第一次遇 ...

  10. MySQL存储引擎差异化实验

    本篇把MySQL最常用的存储引擎给大家做一个介绍,然后通过插入.修改和并发实验来了解和验证一下它们之间的一些差异. 一.MySQL存储引擎简介 存储引擎在MySQL结构里占据核心的位置,是上层抽象接口 ...