限制在WCF中发送数据的大小

时间:2014-05-21 07:06:07

标签: asp.net .net wcf wcf-binding

我正在尝试构建一个只能发送一些Kb数据的WCF服务。

在我的服务中有一种方法可以将11500 Array对象返回给客户端,但我想一次只返回500个数组或只返回500KB数据。

我尝试使用maxStringContentLength,maxArrayLength,maxBytesPerRead,maxNameTableCharCount但返回数据时没有变化,它返回的是相同的11500数组。

我的WCF Web.config就像这样

<bindings>          
        <wsHttpBinding>
            <binding name="TestBinding" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true" receiveTimeout="00:25:00">
                <!--<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />-->
                <readerQuotas   maxStringContentLength="500" maxArrayLength="500" maxBytesPerRead="500" maxNameTableCharCount="500" />
                <security mode="None">
                    <transport clientCredentialType="None" proxyCredentialType="None" realm="" />
                    <message clientCredentialType="UserName" algorithmSuite="Default" />
                </security>
            </binding>
        </wsHttpBinding>
    </bindings>

现在我有两个队列

1-如何限制数据大小

2-如何检查客户端的数据大小。我会收到多少Kb。

我想我会清除我的问题,请帮忙

编辑2:

    <behaviors>
        <endpointBehaviors>
             <behavior name="endpointBehavior">
                <webHttp helpEnabled="true" defaultOutgoingResponseFormat="Xml" faultExceptionEnabled="true" />
            </behavior>
        </endpointBehaviors>

        <serviceBehaviors>
            <behavior name="STaCS">                 
                <serviceMetadata httpGetEnabled="True" />

                <serviceDebug includeExceptionDetailInFaults="False" />
            </behavior>
        </serviceBehaviors>
    </behaviors>

0 个答案:

没有答案