1

JSON文字列を受け入れるWCF RESTサービスがあります

パラメータの 1 つが大きな数字の文字列です

これにより、次のエラーが発生します。これは、トレースして SVC Trace Viewer を使用することで確認できます。

タイプ CarConfiguration のオブジェクトのデシリアライズ中にエラーが発生しました。XML データの読み取り中に、文字列コンテンツの最大長クォータ (8192) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxStringContentLength プロパティを変更することで増やすことができます。

今、私はこれを修正する方法をアドバイスするあらゆる種類の記事を読みました

それらはすべて、サーバーとクライアントのさまざまな構成設定を増やすことを推奨しています

例: WebService 呼び出しで文字列をシリアル化するときにエラーが発生しました

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"

私の問題は、サーバーでこれを変更できることですが、REST サービスとしてクライアントに WCF 構成設定がなく、 WebClientオブジェクトを使用して http 要求を作成しているだけです。

何か案は?

4

2 に答える 2

1

したがって、相対 URL ではなく、エンドポイント アドレスに完全修飾 URL が必要であることがわかります。

JSON を使用した WCF REST サービスの呼び出しでエラーが発生しました。長さの割り当て (8192) を超えました

于 2010-06-02T08:40:33.703 に答える
0

リーダー クォータは WCF のみのものであり、WebClient/HttpWebRequest は逆シリアル化を行わないか、他の種類のクォータを強制しないため、このエラーはクライアントでは発生しません。

したがって、構成を間違った場所に配置している可能性が高く、取得されていない可能性が高いと言えます。

それか... クライアント側で WCF DataContract Serializers のいずれかを手動で使用していませんか?

于 2010-06-01T17:17:57.300 に答える