2012-03-07 1 views
2

大量のデータを取得するのに問題はありませんが、サービスに送り返すとこのエラーが表示されます。XMLデータの読み取り中に文字列の最大文字数の長さ(8192)が超過しました

メッセージをデシリアライズしようとしているときにフォーマッタが例外をスローしました。パラメータhttp://tempuri.org/:responseを逆シリアル化しようとしたときにエラーが発生しました。 InnerExceptionメッセージが 'System.String型のオブジェクトを逆シリアル化する際にエラーが発生しました。 XMLデータを読み取っているときに、最大文字列コンテンツ長の制限(8192)が超過しています。この制限は、XMLリーダーの作成時に使用されるXmlDictionaryReaderQuotasオブジェクトのMaxStringContentLengthプロパティを変更することによって増加させることができます。ここで

は、私は、WCFサービス(サーバー)上で持っているものです。

<bindings> 
    <basicHttpBinding> 
    <binding name="BasicHTTPEndpoint" maxBufferSize="2147483647" maxBufferPoolSize="524288" 
      maxReceivedMessageSize="2147483647" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
      useDefaultWebProxy="true"> 
     <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" 
     maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />   
    </binding> 
    </basicHttpBinding> 
</bindings> 
<client> 
    <endpoint address="http://192.168.1.99/Service/SerializerJsonService" 
      binding="basicHttpBinding" bindingConfiguration="HandleLargeMessage" 
      contract="XMLService.IXMLReader" name="BasicHTTPEndpoint" /> 
</client> 

とservicereferences.clientconfig:

<configuration> 
<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="BasicHttpBinding_ISerializerJsonService" maxBufferSize="2147483647" 
       maxReceivedMessageSize="2147483647"> 
       <security mode="None" /> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://192.168.1.99/Service/SerializerJsonService.svc" 
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISerializerJsonService" 
      contract="YelpService.ISerializerJsonService" name="BasicHttpBinding_ISerializerJsonService" /> 
    </client> 
</system.serviceModel> 

答えて

0

私は問題はmaxBytesPerRead="4096"

であると思い
6

サーバーの設定で:

<basicHttpBinding> 
    <binding name="BasicHTTPEndpoint"... 

エンドポイントが結合(あなたがBindingConfiguration="HandleLargeMessage"に指定され、name属性は、ここでしかエンドポイントを命名された)ことを

を使用するように

<basicHttpBinding> 
    <binding name="HandleLargeMessage"... 

する必要があります

関連する問題