09
Nov
09

if you are expecting too much data from wcf service

Use WCF basicHTTPBinding as the binding. By default it will be wsHTTPBinding

<system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ServiceBehavior">
                    <serviceMetadata httpGetEnabled="true"/>
                    <serviceDebug includeExceptionDetailInFaults="true"/>
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service behaviorConfiguration="ServiceBehavior" name="Service">
                <endpoint address="" binding="basicHttpBinding" contract="IService">
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
            </service>
        </services>
    </system.serviceModel>

On your client application [web/wpf/silverlight] set the same with maxReceivedMessageSize, maxBufferPoolSize, maxStringContentLength and maxArrayLength to 2147483647 as shown below

<system.serviceModel>
       <bindings>
           <basicHttpBinding>
             <binding name="BasicHttpBinding_IService" closeTimeout="00:01:00"
                 openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                 allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="2147483647" maxBufferPoolSize="2147483647"
                 maxReceivedMessageSize="2147483647" messageEncoding="Text"
                 textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
               <readerQuotas maxDepth="32" maxStringContentLength="2147483647"
                   maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
               <security mode="None">
                 <transport clientCredentialType="None" proxyCredentialType="None"
                     realm="" />
                 <message clientCredentialType="UserName" algorithmSuite="Default" />
               </security>
             </binding>
           </basicHttpBinding>
       </bindings>
       <client>
           <endpoint address="http://yourwebserver/yourservice.svc"
               binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService"
               contract="ServiceReference1.IService" name="BasicHttpBinding_IService" />
       </client>
   </system.serviceModel>

That should do :)


0 Responses to “if you are expecting too much data from wcf service”



  1. No Comments Yet

Leave a Reply




@pooran

 

November 2009
M T W T F S S
« Oct   Dec »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Visits so far..

  • 369