2015-06-04 1 views
1

Я унаследовал веб-службы WCF, которая работает ASP.Net 2 на IIS 7.Проблема с maxStringContentLength на WCF

Однако, у нас есть проблемы при размещении больших объемов данных, он выдает ошибку 400 Bad Request ,

Я добавил элемент, а след производит следующее сообщение об ошибке

«Был ошибка десериализации объекта типа CIX.API.Contracts.PostMessage. Максимальная длина строки содержимого квоты (8192) имеет было превышено при чтении данных XML. Эта квота может быть увеличена путем изменения свойства MaxStringContentLength объекта XmlDictionaryReaderQuotas, используемого при создании XML-считывателя. Строка 51, позиция 322. "

Я включил всю систему system.serviceModel ниже - может ли кто-нибудь заметить что-нибудь, что не так? Я пытался исправить это в течение некоторого времени, но я был неспособен, и любая помощь была бы очень оценена.

<diagnostics> 
    <messageLogging logMessagesAtTransportLevel="true" logMessagesAtServiceLevel="false" logMalformedMessages="true" logEntireMessage="true" maxSizeOfMessageToLog="65535000" maxMessagesToLog="500" /> 
</diagnostics> 
<extensions> 
    <behaviorExtensions> 
    <add name="restHttpBehavior" type="CIX.API.Behaviors.ErrorHandling.RestBehaviorExtension, CIX.API, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
    </behaviorExtensions> 
    <bindingElementExtensions> 
    <add name="secureCIXChannel" type="CIX.API.Channels.SecureCIX.SecureCIXBindingExtension, CIX.API, Version=2.0.0.0, Culture=neutral" /> 
    <add name="hlRestChannel" type="CIX.API.Channels.HLRest.HLBindingExtension, CIX.API" /> 
    </bindingElementExtensions> 
</extensions> 
<services> 
    <service behaviorConfiguration="CIX.API.ServiceBehavior" name="CIX.API.CIX"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost/API/" /> 
     </baseAddresses> 
    </host> 
    <endpoint contract="CIX.API.ICIX" address="" binding="customBinding" bindingConfiguration="CIXBinding" behaviorConfiguration="CIX.API.CIXBehavior" /> 
    </service> 
</services> 
<bindings> 
    <customBinding> 
    <binding name="CIXBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647"> 
     <secureCIXChannel /> 
     <webMessageEncoding> 
     <readerQuotas MaxStringContentLength="2147483647" /> 
     </webMessageEncoding>  
     <httpTransport manualAddressing="true" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" /> 
    </binding> 
    </customBinding> 
</bindings> 
<behaviors> 
    <endpointBehaviors> 
    <behavior name="CIX.API.CIXBehavior"> 
     <dataContractSerializer maxItemsInObjectGraph="200000" /> 
     <!--<webHttp />--> 
     <restHttpBehavior /> 
    </behavior> 
    </endpointBehaviors> 
    <serviceBehaviors> 
    <behavior name="CIX.API.ServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 
    <behavior name="CIX.Web.CIXBehavior"> 
     <serviceMetadata httpGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

Лесли

ответ

0

попробовать также добавив MaxArrayLength = "2147483647" maxBytesPerRead = "2147483647" в readerquota.

+0

К сожалению, это не имеет значения. –

+0

MaxStringContentLength должен быть maxStringContentLength ... config чувствителен к регистру .... проверьте, обновляете ли вы конфигурацию в правильном месте. –