TomK
TomK

Reputation: 523

WCF .config file - something is plainly wrong

Folks, I've got something wrong with this .config for my WCF. When I send data to it more than 8192 bytes (the default) it fails, telling me my "maxStringContentLength" is only 8192. I think I have it set here to 10,000,000.

Any clues?

<system.serviceModel>
 <bindings>
  <wsHttpBinding>
    <binding name="wsHttpBinding" maxReceivedMessageSize="50000000" maxBufferPoolSize="50000000" messageEncoding="Mtom">
      <readerQuotas maxDepth="200" maxStringContentLength="10000000" maxArrayLength="16384" maxBytesPerRead="10000000" maxNameTableCharCount="16384" />
    </binding>
  </wsHttpBinding>
</bindings>
<services>     
  <service name="PsychCoverage.WcfMT.Admin">
    <endpoint address="" binding="wsHttpBinding" contract="PsychCoverage.Common.IAdmin">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
    <endpoint address="mex" binding="wsHttpBinding" contract="IMetadataExchange" />
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost:8732/Design_Time_Addresses/WcfMT/Admin/" />
      </baseAddresses>
    </host>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior >
      <serviceMetadata httpGetEnabled="True" />
      <serviceDebug includeExceptionDetailInFaults="True"  />
    </behavior>
  </serviceBehaviors>
</behaviors>
</system.serviceModel>

Upvotes: 1

Views: 588

Answers (1)

Tim
Tim

Reputation: 28520

You do have it set, but you're not referencing it in the endpoint element, so .NET is using the default for wsHttpBinding (8192). Add the config you specified using the bindingConfiguration attribute of the endpoint element:

<endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsHttpBinding" contract="PsychCoverage.Common.IAdmin">

Also, I'd recommend using a different name than wsHttpBinding to prevent confusion.

Upvotes: 2

Related Questions