WCF -ReaderquoatasをRESTサービスで増やします
-
22-10-2019 - |
質問
JSON文字列を受け入れるWCFレストサービスがあります
パラメーターの1つは、数字の大きな文字列です
これにより、次のエラーが発生します。これは、SVC Trace Viewerをトレースおよび使用することで表示されます。
タイプのカルコンフィギュレーションのオブジェクトを脱上するエラーがありました。 XMLデータの読み取り中に、最大文字列コンテンツの長さクォータ(8192)を超えています。このクォータは、XMLリーダーを作成するときに使用されるXMLDictionaryReaderQuotasオブジェクトのMaxStringContentLengthプロパティを変更することにより、増加する場合があります。
今、私はこれを修正する方法をアドバイスするあらゆる種類の記事を読みました
それらはすべて、サーバーとクライアントのさまざまな構成設定を増やすことをお勧めします
例えばウェブサービスコールで文字列のシリアル化をエラーします
http://bloggingabout.net/blogs/ramon/archive/2008/08/20/wcf-and-large-messages.aspx
http://social.msdn.microsoft.com/forums/en/wcf/thread/f570823a-8581-45ba-8b0b-ab0c7d7fcae1
したがって、私の構成ファイルは次のようになります
<webHttpBinding>
<binding name="webBinding" maxBufferSize="5242880" maxReceivedMessageSize="5242880" >
<readerQuotas maxDepth="5242880" maxStringContentLength="5242880" maxArrayLength="5242880" maxBytesPerRead="5242880" maxNameTableCharCount="5242880"/>
</binding>
</webHttpBinding>
...
...
...
<endpoint
address="/"
binding="webHttpBinding"
bindingConfiguration="webBinding"
私の問題は、サーバーでこれを変更できることですが、クライアントには休憩サービスとしてWCF構成設定がありません。 WebClient
物体
何か案は?
解決
そのため、相対的なアドレスではなく、エンドポイントアドレスに完全に適格なURLが必要であることがわかります
他のヒント
読者の割り当てはWCFのみのものであり、WebClient/HTTPWEBREQUESTは、その他の種類の割り当てを強制しないため、読者のクォータはWCFのみのものであり、WebClient/HTTPWebRequestが発生するため、このエラーは発生しません。
それで、私はそれがあなたが間違った場所に構成を置いていて、それが拾われていない可能性が高いと言うだろうと思います。
それか...あなたはクライアント側で手動でWCFデータコントラクトのシリアル化剤のいずれかを使用していないのですか?