问题场景:在我们WCF服务发布后,我们要确保服务端以及客户端的配置文件允许合适大小的传输设置。笔者在发布WCF服务时,服务端的绑定未做传输大小的设置(采用了默认,maxStringContentLength默认大小为8192),而我们在传输序列化的数据时,大小超过了这个限制。
问题原因:服务端或者客户端关于传输大小的未做设置,maxStringContentLength默认大小为8192,实际传输大于8192,由此产生异常。
<system.serviceModel>
<bindings>
<ws2007HttpBinding>
<binding name="WS2007HttpBinding_ICenterDynamicService" maxReceivedMessageSize="2147483647" > <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNaMetableCharCount="2147483647" /> <security mode="Message"> <transport clientCredentialType="Windows" /> <message clientCredentialType="Windows" /> </security> </binding> </ws2007HttpBinding> </bindings> <client> <endpoint address="http://xxxx02/Services/Activity/CenterDynamicService.svc" binding="ws2007HttpBinding" bindingConfiguration="WS2007HttpBinding_ICenterDynamicService" contract="DBCenterDynamicService.ICenterDynamicService" name="WS2007HttpBinding_ICenterDynamicService"> <identity> <servicePrincipalName value="host/iZ23joewgpoZ" /> </identity> </endpoint> </client> </system.serviceModel>