----------------------------------------------消息模式:
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. C#版的抓包软件

    C#版的抓包软件   [创建时间:2015-09-10 22:37:04] NetAnalyzer下载地址 不好意思啊,NetAnalyzer停更有点长了,今天继续填坑^&^ NetAnaly ...

  2. android怎么在launcher改动内置apk的icon

    找到launcher下的IconCache中加入变量用来存储要改动apk的包名 及要改动成的icon private String[] className = {"com.google.an ...

  3. HDU 4081-Parsing URL(水)

    Parsing URL Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Tota ...

  4. 大数据下的数据分析平台架构zz

    转自http://www.cnblogs.com/end/archive/2012/02/05/2339152.html 随着互联网.移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海 ...

  5. 无法打开物理文件mdf,操作系统错误 5:&quot;5(拒绝訪问。)&quot;

    无法打开物理文件mdf,操作系统错误 5:"5(拒绝訪问.)" 环境: SQL Server 2008 R2 问题: 附加数据库时报错"无法打开物理文件mdf.操作系统错 ...

  6. MvcMailer通过ASP.NET MVC Razor视图和基架发送邮件

    MvcMailer是一个有趣的组件,您可以使用ASP.NET MVC框架在发送邮件.很重要的是,它使用Razor视图引擎的观点作为电子邮件模板和很容易安装和使用.在本文中你将看到如何安装,设置邮件模板 ...

  7. 于ios7在遇到一些发展deprecated问题

    cell.textLabel.textAlignment = UITextAlignmentCenter; 现在我想写cell.textLabel.textAlignment =NSTextAlign ...

  8. linux_vim_快捷键

    1.vim ~/.vimrc 进入配置文件 如果不知道vimrc文件在哪,可使用 :scriptnames 来查看 set nu #行号 set tabstop=4 #一个tab为4个空格长度 set ...

  9. 关于微软公有云Azure会计标准

    前几年.中国的云计算项目往往搞成了房地产项目.大搞形"象project",没有实质性的内容.云计算老总成了房地产大老板,国内业界是在胡闹! 现今,世纪互联与微软(中国)联手搞公有云 ...

  10. net.sf.json 迄今 时刻 格式 办法

    创作工具类 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import  ...