locked
请教各位 silverlight接受webservice返回的数据过大,提示maxReceivedMessageSize超出范围,应该怎么修改,我用的是webservice RRS feed

  • 问题

  • 请教各位 silverlight接受webservice返回的数据过大,提示maxReceivedMessageSize超出范围,应该怎么修改,我用的是webservice。
     WCF的配置 我知道,跟webservice配置不一样
    2009年5月22日 8:24

答案

  • 经测试maxBufferSize最大大小就是2147483647了,这是个Int的参数,值从-2,147,483,648 到 2,147,483,647,如果一个WebSerivce返回值超过2G也就会出错了.还是分段传输吧,或者代理下载用ashx试试了
    2009年5月23日 9:24

全部回复

  • 看看这个能否解决你的问题

    http://silverlight.net/forums/t/62280.aspx
    【孟子E章】
    2009年5月22日 8:56
  • 呵呵  谢谢,我刚刚就看的这个,我用的是WEBSERVICE  不是WCF,请老兄 多多帮忙
    2009年5月22日 8:58
  • 你可以试试: 1,对数据进行压缩 2,分段取数据
    【孟子E章】
    2009年5月22日 9:52
  • 谢谢 老兄,你说的这两个办法我都在想,请教你压缩有什么好办法?
    2009年5月22日 9:55
  • 你一次传输大小超过2G了?
    2009年5月22日 11:19
  • 宪哥,Silverlight里面好像没有
    System.IO.Compression 这个类
    2009年5月22日 14:54
  • <configuration>
    
        <system.serviceModel>
    
            <bindings>
    
                <basicHttpBinding>
    
                    <binding name="WebService1Soap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
    
                        <security mode="None" />
    
                    </binding>
    
                </basicHttpBinding>
    
            </bindings>
    
            <client>
    
                <endpoint address="http://localhost:37584/WebService1.asmx" binding="basicHttpBinding"
    
                    bindingConfiguration="WebService1Soap" contract="ServiceReference1.WebService1Soap"
    
                    name="WebService1Soap" />
    
            </client>
    
        </system.serviceModel>
    
    </configuration>
    
    
    在Silverlight项目中查看ServiceReferences.ClientConfig这里可以修改允许传输WebService最大字节数的大小,默认是2G

    2G是C#的String字符串最大的大小,如果你返回的String超过2G大小就不可能了,修改限制大小用Stream返回试试
    2009年5月22日 15:14
  • 谢谢 两位
    修改<binding name="WebService1Soap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
    我试验过,基本网上国内外的修改方法都参考了不行? 还是我写错了?
    最后决定还是 分段传输吧
    2009年5月23日 2:48
  • 经测试maxBufferSize最大大小就是2147483647了,这是个Int的参数,值从-2,147,483,648 到 2,147,483,647,如果一个WebSerivce返回值超过2G也就会出错了.还是分段传输吧,或者代理下载用ashx试试了
    2009年5月23日 9:24