WCF Max Message Size Error

1.4k views Asked by At

I have implemented WCF services for IStudent and few of them throwing Max Message size quota for incoming messages (65536) has been exceeded. I have implemented wsHttpBinding, also I tried to increase message side under bindings tab but still getting error, also binding maxBufferSize=""... not recognized if it suppose to be

Initially I am testing my service on WCF Test Client Tool

App.config

<service name="App.WebServices.Manager.EBSMiddlewareServicesManager" behaviorConfiguration="EBSMiddlewareBehaviorDefault">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:30432/"/>
      </baseAddresses>
    </host>
    <endpoint name="StudentServices" address="StudentServices" binding="wsHttpBinding" contract="App.WebServices.ServiceContract.IStudentServices"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
  </service>
</services>

....

<bindings>
  <wsHttpBinding>
    <binding name="DefaultTransportSecurity" sendTimeout="00:10:00" allowCookies="true" maxReceivedMessageSize="2147483647" maxBufferSize="" maxBufferPoolSize="2147483647">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    </binding>
  </wsHttpBinding>
</bindings>

Error

The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.

Server stack trace: 
at  System.ServiceModel.Channels.HttpInput.ThrowMaxReceivedMessageSizeExceeded()
at System.ServiceModel.Channels.HttpInput.GetMessageBuffer()
at System.ServiceModel.Channels.HttpInput.ReadBufferedMessage(Stream inputStream)
at System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(HttpRequestMessage httpRequestMessage, Exception& requestException)
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ClientReliableChannelBinder`1.RequestClientReliableChannelBinder`1.OnRequest(TRequestChannel channel, Message message, TimeSpan timeout, MaskingMode maskingMode)
at System.ServiceModel.Channels.ClientReliableChannelBinder`1.Request(Message message, TimeSpan timeout, MaskingMode maskingMode)
at System.ServiceModel.Channels.ClientReliableChannelBinder`1.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Security.SecuritySessionClientSettings`1.SecurityRequestSessionChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at IStudentServices.GetActiveStudentList()
at StudentServicesClient.GetActiveStudentList()

  Inner Exception:
  The maximum message size quota for incoming messages (65536) has been exceeded. To increase the quota, use the MaxReceivedMessageSize property on the appropriate binding element.
2

There are 2 answers

1
Ross Bush On

The MaxReceivedMessageSize property of the of the binding is what is being exceeded in the error below. You need to override that value. You may also want to test the values you have applied to the readerQuotas.

<wsHttpBinding>
    <binding 
         name="myBinding" 
         maxReceivedMessageSize="2147483647"
     </binding>
</wsHttpBinding>
1
K.Z On

I have found reason, the app.config I have updated is for server side and I am using WCF Test Client tool to test my services so I need to increase the size at tool side too

add service, notice there is a "config file" node at the end of the service tree: right click it and select "edit with SvcConfigEditor", get the exact configuration editor for the service side - just go to the binding settings and change the MaxReceivedMessageSize and save the changes.