zoukankan      html  css  js  c++  java
  • WCF数据传输配置文件参数的设置说明

    关于这四个属性,在MSDN中的解释有点敷衍了事。
    Open/Close/Receive/Send本是HTTP/TCP/SOCKET的概念,Read/Write 
    Operation则是Web 
    Service的概念。

    1.OpenTimeout

    客户端与服务端建立连接时,如果超过指定时间都还没完成,就引发TimeoutException。

    在TCP通讯中,服务器必须首先准备好侦听端口并在该端口上侦听(Listen),而客户端则必须首先向服务器发出连接(Connect)指令,服务器端收到后作出接受响应(Accept)后连接成功,此后两者就可以互发消息了。
    在WCF领域中,类似地,Open()表示建立一个Binding。

    测试:拨网线。

    2.CloseTimeout

    与OpenTimeout类似, 
    CloseTimeout用于关闭一个连接时。

    一般情况下,客户端比较随意,不会在意这个超时异常。“Close()是我发出的,我自己决定何时清理资源。”
    在服务器就不同了,她必须对客户端负责,不能乱来,在收到Close()成功的响应之前,或收到超时异常之前,不能随意清理与客户端相关的资源。

    3.SendTimeout

    客户端调用的超时,默认1分钟。每次调用都必须在指定时间内完成,否则将引发TimeoutException。

    在TCP通讯中,双方建立连接后,客户端如果需要发送消息给服务端,就发送一个数据包给服务器,服务器收到后必须给出一个响应,客户端收到这个响应后才能宣告发送成功。类似地,服务器也可能主动发送消息给客户端。这两个动作,分别对于客户端和服务器来说,都是发送(Send),而对于另一方来说都是接收(Receive)。
    但是,在WCF领域中的SendTimeout中的Send与TCP的Send理念上类似,但是实质上完全不是一回事。SendTimeout中的Send是指客户端发起调用。
    在WCF客户端,用proxy.InnerChannel.OperationTimeout可以取到SendTimeout的值。(此处,proxy 
    是自动生成的服务代理类XxxClient的一个实例)

    测试:在服务器的调用处理代码中插入MessageBox.Show(...)或Thread.Sleep(...)。

    4.ReceiveTimeout

    与SendTimeout同理, 
    ReceiveTimeout中的Receive是指服务器端发起回调(Callback)。只有在双向通讯绑定时适用,如WSDualHttpBinding, 
    NetTcpBinding, NetNamedPipeBinding, 

    ReceiveTimeout是服务器回调(Callback)的超时,默认10分钟。每次回调都必须在指定时间内完成,否则将在服务器端引发TimeoutException。


    5.maxBufferPoolSize="524288",从通道接收消息的最大缓存数量为2147483647

    6.maxBufferSize="65536" 从通道接收消息的缓存大小为2147483647

    7.maxConnections="10" 最大连接数目
    8.maxReceivedMessageSize="65536">最大接收的消息大小为2147483647
    <readerQuotas>
    为交换的 Soap 消息指定复杂性约束的 XmlDictionaryReaderQuotas。下面的备注部分中提供了这些约束的默认值。
    这些复杂性约束可以抵御某种类型的拒绝服务 (DOS) 攻击,这些攻击试图利用消息复杂性来占用终结点处理资源。表达这些约束及其默认值的属性如下所示:
    字典读取器最重要的安全功能是配额。必须为字典读取器工厂方法指定配额实例。默认构造函数创建“安全”默认值(与编码默认值相同),并且类具有静态 Max 属性,用于创建不带配额的读取器。
    9.maxDepth="32" 最大节点深度
    10.maxStringContentLength="8192" 最大内容长度为2147483647
    11.maxArrayLength="16384"最大数组长度
    12.maxBytesPerRead="4096" 最大每次读取长度
    13.maxNameTableCharCount="16384"最大NameTableChar的数量为2147483647

  • 相关阅读:
    windows下python访问ipv6报错
    windows下python的包管理器pip安装
    python添加windows域验证
    Java系列笔记(1)
    JVM调优总结 -Xms -Xmx -Xmn -Xss
    5种调优Java NIO和NIO.2的方式
    Java之美[从菜鸟到高手演变]之JVM内存管理及垃圾回收
    jmap,jhat分析内存
    JVM 垃圾回收算法
    JVM 类加载过程
  • 原文地址:https://www.cnblogs.com/hanguoji/p/2961405.html
Copyright © 2011-2022 走看看