title: Transfer large amount of data in WCF service
body: <p>I have created a web service in WCF which returns more than 54000 data-rows with 10 data in each row. I have used the <strong>wsHttpBinding</strong> for communication. The service works well with less data (i.e. 2000 rows) but it bombs out when attempting to send large record set with 50000+ rows(~2MB). The exception message is like this</p>
  
  <blockquote>
    <p>An error occurred while receiving the HTTP response to <code>http://localhost:9002/MyService.svc</code>. This could be due to the service endpoint binding not using the HTTP protocol. This could also be due to an HTTP request context being aborted by the server (possibly due to the service shutting down). See server logs for more details.</p>
  </blockquote>
  
  <p>Please don't tell me to use pagination on the client side - I know that it will solve the problem. But I need the whole chunk of data in the client-end.</p>
  
  <p>My service configuration on server is as </p>
  
  <pre><code>&lt;system.serviceModel&gt;
    &lt;bindings&gt;
      &lt;wsHttpBinding&gt;
        &lt;binding name="MyWsHttpBinding" /&gt;
      &lt;/wsHttpBinding&gt;
    &lt;/bindings&gt;
    &lt;services&gt;
      &lt;service name="AdminService"&gt;
        &lt;endpoint address="AdminSrv"
                  binding="wsHttpBinding"
                  contract="IAdminService"/&gt;
        &lt;endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /&gt;
        &lt;host&gt;
          &lt;baseAddresses&gt;
            &lt;add baseAddress="/Bus/IRfotoWCF" /&gt;
          &lt;/baseAddresses&gt;
        &lt;/host&gt;
      &lt;/service&gt;
    &lt;/services&gt;
    &lt;behaviors&gt;
      &lt;serviceBehaviors&gt;
        &lt;behavior&gt;
          &lt;!-- To avoid disclosing metadata information, 
                    set the value below to false and remove the metadata endpoint above before deployment --&gt;
          &lt;serviceMetadata httpGetEnabled="True"/&gt;
          &lt;!-- To receive exception details in faults for debugging purposes, 
                    set the value below to true.  Set to false before deployment 
                    to avoid disclosing exception information --&gt;
          &lt;serviceDebug includeExceptionDetailInFaults="True" /&gt;
        &lt;/behavior&gt;
      &lt;/serviceBehaviors&gt;
    &lt;/behaviors&gt;
    &lt;serviceHostingEnvironment multipleSiteBindingsEnabled="true"&gt;&lt;/serviceHostingEnvironment&gt;
  &lt;/system.serviceModel&gt;
  </code></pre>
  
  <p>My client configuration is as </p>
  
  <pre><code>&lt;system.serviceModel&gt;
    &lt;bindings&gt;
      &lt;basicHttpBinding&gt;
        &lt;binding name="BasicHttpBinding_IAdminService" closeTimeout="00:01:00"
                 openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                 allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                 maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                 messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
                 useDefaultWebProxy="true"&gt;
          &lt;readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
                        maxBytesPerRead="4096" maxNameTableCharCount="16384" /&gt;
          &lt;security mode="None"&gt;
            &lt;transport clientCredentialType="None" proxyCredentialType="None" realm="" /&gt;
            &lt;message clientCredentialType="UserName" algorithmSuite="Default" /&gt;
          &lt;/security&gt;
        &lt;/binding&gt;
      &lt;/basicHttpBinding&gt;
    &lt;/bindings&gt;
    &lt;client&gt;
      &lt;endpoint address="http://localhost/TestService/AdminService.svc" 
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IAdminService"
                contract="IAdminService" name="BasicHttpBinding_IAdminService" /&gt;
    &lt;/client&gt;
  &lt;/system.serviceModel&gt;
  </code></pre>
  
  <p>Would someone help me out with excact configuration both in the client and server side. Even if i need to change binding from <strong>wsHttpBinding</strong> to <strong>netTcpBinding</strong> - i have no problem doing that. Thanks in advance. </p>