2014-02-17 7 views
1

Я новичок в wcf-сервисах.Форматирование вычеркнуло исключение при попытке десериализации сообщения. Отправка с android

некоторое время нет погрешность, но некоторое время получение ошибка. пожалуйста, помогите мне в этой модели

Службы

<system.serviceModel> 
     <bindings> 
      <wsHttpBinding> 
      <binding name="ExStreamWCFBinding" 
        closeTimeout="00:01:00" 
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"     
        hostNameComparisonMode="StrongWildcard" 
        maxBufferPoolSize="2147483647" 
        maxReceivedMessageSize="2147483647"> 
       <readerQuotas 
          maxDepth="2147483647" 
          maxStringContentLength="2147483647" 
          maxArrayLength="2147483647" 
          maxBytesPerRead="2147483647" 
          maxNameTableCharCount="2147483647" 
          /> 
      </binding> 
      </wsHttpBinding> 
     </bindings> 
     <behaviors> 
      <serviceBehaviors> 
      <behavior name="ServiceBehavior"> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="true" /> 
      </behavior> 
      </serviceBehaviors> 
      <endpointBehaviors> 
      <behavior name="wsServiceBehavior"> 
       <dataContractSerializer maxItemsInObjectGraph="2147483646" /> 
      </behavior> 
      </endpointBehaviors> 
     </behaviors> 
     <services> 
      <service name="Wcf_tblt_rTest.Service1" behaviorConfiguration="ServiceBehavior" > 
      <host> 
       <baseAddresses> 
       <add baseAddress="http://localhost:900/mex/"/> 
       <add baseAddress="net.tcp://localhost:9000/" /> 
       </baseAddresses> 
      </host> 
      <endpoint bindingConfiguration="ExStreamWCFBinding" binding="basicHttpBinding" contract="Wcf_tblt_rTest.IService1" /> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
      </service> 
     </services> 

     </system.serviceModel> 

ошибка приходит как этот

ошибка при попытке десериализации параметр http://tempuri.org/:tm. Сообщение InnerException было «Ошибка десериализации объекта типа JSONSample.GetResp. Максимальная длина содержимого строки квота (8192) превышена при чтении данных XML. Эта квота может быть увеличена путем изменения свойства MaxStringContentLength объекта XmlDictionaryReaderQuotas, используемого при создании XML-ридера. '. Для получения дополнительной информации см. InnerException. '. См. Журналы сервера для получения более . Стека исключений трассировки:

на System.ServiceModel.Dispatcher.DataContractJsonSerializerOperationFormatter.DeserializeParameterPart (XmlDictionaryReader читатель, PartInfo часть) в System.ServiceModel.Dispatcher.DataContractJsonSerializerOperationFormatter.DeserializeParameter (XmlDictionaryReader читателя, PartInfo часть) в System.ServiceModel.Dispatcher.DataContractJsonSerializerOperationFormatter.DeserializeParameters (XmlDictionaryReader читатель, PartInfo [] части, Object [] параметры, PartInfo returnInfo, Object & ReturnValue) на System.ServiceModel.Dispatcher.DataContractJsonSerializer OperationFormatter.DeserializeBodyCore (XmlDictionaryReader читатель, Object [] параметры, Boolean isRequest) при System.ServiceModel.Dispatcher.DataContractJsonSerializerOperationFormatter.DeserializeBody (XmlDictionaryReader читатель, MessageVersion версия, строка действия, MessageDescription messageDescription, Object [] Параметры, Boolean) isRequest на System.ServiceModel.Dispatcher.OperationFormatter.DeserializeBodyContents (Message сообщение, Object [] параметры, Boolean isRequest) при System.ServiceModel.Dispatcher.OperationFormatter.DeserializeRequest (Message сообщения, Object []) параметры в System.ServiceModel .Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest (Сообщение сообщения, Object [] Параметры) при System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest (Message сообщения, Object [] Параметры) при System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest (Message сообщения, Object [] Параметры) на System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs (MessageRpc & RPC) в System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin (MessageRpc & ) в Rpc System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5 (MessageRpc & Rpc) по адресу System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4 (MessageRpc & rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3 (MessageRpc & RPC) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2 (MessageRpc & Rpc) в System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1 (MessageRpc & Rpc) в System.ServiceModel.Dispatcher.MessageRpc. Процесс (Boolean isOperationContextSet)

+0

Помогает ли это? http://msdn.microsoft.com/en-us/library/ms731325.aspx –

ответ

2

WCF имеет много квот (ака пределов), что предотвращает либо злонамеренные или непреднамеренные атаки отказа в обслуживании.

Сообщение «Превышена максимальная длина длины содержимого строки (8192)» означает, что вы отправляете строку, содержащую более 8192 символов. Вы должны изменить файл конфигурации, чтобы увеличить содержимое.

настройки не применяются здесь, потому что вы указали квоты ридера для WsHttpBinding и ваша служба экспонируется через BasicHttpBinding: есть несоответствие и новые квоты настройки не применяются.

Смежные вопросы

 Смежные вопросы