27

wsf サービスとクライアント アプリケーションがあります。クライアントとサービスを通信しようとしているときに、次のメッセージが表示されました。

"メッセージのデシリアライズ中にフォーマッタが例外をスローしました: パラメータhttp://tempuri.org/:blobのデシリアライズ中にエラーが発生しました。 XML データの読み取り中に、配列の最大長クォータ (16384) を超えました。このクォータは、XML リーダーの作成時に使用される XmlDictionaryReaderQuotas オブジェクトの MaxArrayLength プロパティを変更することで増やすことができます。行 1、位置 25931.'.詳細については、InnerException を参照してください. "

customBinding 要素がありますが、「readerQuotas」セクションを挿入できません。クライアント構成とサービス構成の両方に、次のバインド要素があります。

<customBinding>
  <binding name="LicenseServiceBinding"
                closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00">
      <security authenticationMode="UserNameOverTransport">
          <localClientSettings maxClockSkew="00:07:00" />
          <localServiceSettings maxClockSkew="00:07:00" />
      </security>
      <windowsStreamSecurity />
      <httpsTransport maxReceivedMessageSize="2147483646"/>          
  </binding>
</customBinding>

助けてくれてありがとう:)

4

2 に答える 2

46

実際、textMessageEncoding セクション内に readerQuotas を追加することで問題を解決しました。助けてくれてありがとう。

<textMessageEncoding messageVersion="Soap11">
          <readerQuotas maxDepth="32" maxStringContentLength="5242880" maxArrayLength="2147483646" maxBytesPerRead="4096" maxNameTableCharCount="5242880"/>
</textMessageEncoding>
于 2010-06-21T06:43:52.777 に答える
18

<readerQuotas>要素内に<binding>要素を追加できるはずです。

<customBinding> 
  <binding name="LicenseServiceBinding" 
                closeTimeout="00:01:00" openTimeout="00:01:00" 
                receiveTimeout="00:10:00" sendTimeout="00:01:00"> 
      <security authenticationMode="UserNameOverTransport"> 
          <localClientSettings maxClockSkew="00:07:00" /> 
          <localServiceSettings maxClockSkew="00:07:00" /> 
      </security> 
      <readerQuotas maxArrayLength="32768" />
      <windowsStreamSecurity /> 
      <httpsTransport maxReceivedMessageSize="2147483646"/>           
  </binding> 
</customBinding> 

あなたはそれが「私が挿入することを許可しない」と述べました。どのようなエラー メッセージが表示されますか?

于 2010-06-18T08:27:27.213 に答える