使服务返回大量数据

时间:2010-06-22 09:35:27

标签: c# wcf rest web-services

WCF服务可以返回的数据限制是多少?我尝试使用maxReceivedMessageSize和其他参数,但仍然不知道究竟是什么限制?即使我摆脱了“传入消息的大小配额”问题,我也得到“现有连接被远程主机强行关闭”。

我知道“pagging”是最好的解决方案,但目前我想知道我可以发送给客户端的MAX数据是什么而没有额外的复杂性。 谢谢!

此致 列昂尼德

2 个答案:

答案 0 :(得分:1)

您必须编辑两个地方:查看此http://forums.silverlight.net/forums/t/40770.aspx

  1. 编辑ServiceReferences.ClientConfig以接受大缓冲区。

    binding name =“BasicHttpBinding_MosaicService”maxBufferSize =“2147483647”                             maxReceivedMessageSize = “2147483647” >

  2. web.config

    中服务器上的
  3. 添加一个Httpbinding并将其命名为

                                

    将其设置为2MB并告诉服务使用此绑定

    <services>
    
         <service behaviorConfiguration="TekPlayground.MosaicServiceBehavior"
    name="TekPlayground.MosaicService">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="ServicesBinding" contract="TekPlayground.MosaicService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
    

答案 1 :(得分:0)

有很多设置会影响超出限制之前可以发送/接收的数据量。

  • 服务绑定的maxReceivedMessageSize设置;
  • 服务绑定的maxStringContentLength设置;
  • 服务绑定的maxArrayLength设置;
  • 服务行为的maxItemsInObjectGraph设置。

并且,如果您在IIS中托管:

  • ASP.NET的maxRequestLength;
  • IIS'maxAllowedContentLengthsecurity/requestFiltering/requestLimits下)。