none
请问可以提供WCF自动分包的示例 RRS feed

  • 问题

  • 使用WCF的时候,数据太大的时候会报错,WCF没有为我们提供自动分包的功能,这在应用环境下是最基本的需求。我觉得这应该是一个通信框架最基本的功能,有没有根据配置文件里消息大小的设置自动分包,并且在服务端自动合并,一切对应用透明的示例。
    菜鸟
    2010年11月22日 12:44

答案

  • maxReceivedMessageSize所支持的最大值是long.MaxValue,也就是9223372036854775807,大致上等于8400TB。通常一份报表不会传输那么大的数据吧,即使是文件也不会。

    我们会考虑你的需求,是否可以写一个示例。如果你能够提供更详细的信息,我们更有可能实现一个完整的示例。


    Lante, shanaolanxing This posting is provided "AS IS" with no warranties, and confers no rights.
    • 已标记为答案 紫柔 2011年3月15日 4:50
    2010年11月23日 4:57

全部回复

  • Hi,为了解决数据太大时报错的问题,你只需要修改配置文件,将各种max***以及timeout属性的值设置得大一些即可。例如:

        <bindings>

          <basicHttpBinding>

            <binding maxReceivedMessageSize="10000000" receiveTimeout="01:00:00" sendTimeout="01:00:00">

              <readerQuotas maxArrayLength="10000000" maxStringContentLength="10000000"/>

            </binding>

          </basicHttpBinding>

        </bindings>

    针对这种情况我们就不再写一个sample project了。

    如果你需要一个分包的示例,请告诉我们详细需求。例如,你使用的是SOAP service还是REST service?我们推荐使用REST service传输大批量数据。你传输的是什么类型的数据?文件,entity,或者是其它类型的数据?你对客户端有什么需求?.NET客户端,Silverlight客户端,AJAX客户端,native客户端,Windows Phone客户端,还是有第三方客户端?目前我们暂不提供使用第三方技术的示例。


    Lante, shanaolanxing This posting is provided "AS IS" with no warranties, and confers no rights.
    2010年11月23日 1:37
  • 按照这种设置如果你需要传输的数据超过配置文件里设置的大小,传输就会失败。我主要是应用在报表上,有可能用户查报表一下会查一年的,或是数年的,数据量比较大,最大有多少事前也无法预测。我想要实现是的服务端发现超过配置文件大小时会自动分成几块传输,在客户端再自动组合一起。
    菜鸟
    2010年11月23日 4:21
  • maxReceivedMessageSize所支持的最大值是long.MaxValue,也就是9223372036854775807,大致上等于8400TB。通常一份报表不会传输那么大的数据吧,即使是文件也不会。

    我们会考虑你的需求,是否可以写一个示例。如果你能够提供更详细的信息,我们更有可能实现一个完整的示例。


    Lante, shanaolanxing This posting is provided "AS IS" with no warranties, and confers no rights.
    • 已标记为答案 紫柔 2011年3月15日 4:50
    2010年11月23日 4:57
  • 能否给个示例扩展一个绑定,比如默认的消息大小是64K,我要传输128K的数据,由这个绑定或者服务自动分二次传输到客户端,然后再组装好交给调用方


    菜鸟
    2010年11月23日 11:18