2011-10-26 12 views
0

現在、キー/値ペアの1つにイメージバイナリデータのBase 64でエンコードされた文字列が含まれているJSONオブジェクトを受け入れているWCF Webサービスがあります。WCFサービスエラーオブジェクトの逆シリアル化

Webサービスは、次のエラースローリクエスト受信時:

:私は他の人が示唆していると、私のWeb.Configは現在カスタムバインディングを持っているソリューションの一部を追ってきた

The exception message is 'There was an error deserializing the object of type. The maximum string content length quota (8192) has been exceeded while reading XML data.

をように構成されたエンドポイントと

<bindings> 
    <webHttpBinding> 
    <binding name="LongWebHttpBinding" 
      maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"> 
     <readerQuotas maxDepth="32" 
      maxStringContentLength="2147483647" 
      maxArrayLength="2147483647" 
      maxBytesPerRead="2147483647" 
      maxNameTableCharCount="2147483647" /> 
    </binding> 
    </webHttpBinding> 
</bindings> 

は、以下:

<services> 
    <service name="GenericService"> 
    <endpoint address="" 
       behaviorConfiguration="jsonBehavior" 
       binding="webHttpBinding" bindingConfiguration="LongWebHttpBinding" 
       contract="IGenericService" />    
    </service>  
</services> 

よれTをo他のすべての提案は、私が得ているエラーメッセージを解決するはずですbindingConfiguration

これを試して整理するためにこれ以上のステップはありますか?

+0

上記の変更を行ってもまだ動作しませんか? – Tim

+3

'service'要素の' name'属性に名前空間を持つ型名(または非ローカルアセンブリから参照される場合は完全な型名)が含まれていることを確認してください。そうしないと、設定は使用されません。 –

+0

@LadislavMrnka - 私は決してそれを知りませんでした(私は常に完全な名前空間を使用します)。 – Tim

答えて

0

新しい設定を行っても問題が解決しない場合は、定義したjsonBehaviorの<dataContractSerializer>セクションのmaxItemsInObjectGraph属性を調整することができます。

dataContractSerializer

しかし、私はそれが問題である場合、例外があなたのことを言うだろうと考えている - 私はmaxReceivedMessageSizeまたはmaxStringContentLength以外のものを調整しなければならなかったことがありませんようわかりません。

0

Ladislav Mrnkaとして、Web.Configに入力するときにサービスの完全な名前空間を使用していないことが判明しました。

完全な名前空間を追加すると、正常に動作しているようです。

ありがとうございました

関連する問題