0

私の MVC3 アプリは、WCF サービスを呼び出してファイルをダウンロード/アップロードします。WCF サービスは、古い学校の asmx サービスを呼び出して、要求されたファイルの base 64 文字列を取得するか (ダウンロード)、ファイルの base 64 文字列を受け取ります (アップロード)。任意のサイズのファイルを自分のマシンに問題なくダウンロードできます。

ファイルをアップロードしようとすると、恐ろしい最大配列長エラーが発生します。

  The maximum array length quota (16384) has been exceeded while reading XML data. 
   This quota may be increased by changing the MaxArrayLength property on the
   XmlDictionaryReaderQuotas object used when creating the XML reader.

これに関する紛らわしい部分は、ファイルをアップロードするのと同じサービスを使用してファイルをダウンロードしていることです。したがって、両方でそのエラーが発生するはずですが、そうではありません。私はこれを私のweb.configに持っています:

      <readerQuotas maxDepth="32" maxStringContentLength="2147483647" 
       maxArrayLength="2147483647" 
                      maxBytesPerRead="4096" maxNameTableCharCount="2147483647"/>

では、ファイルをダウンロードできるのにアップロードできないのはなぜですか? ありがとう

4

1 に答える 1

1

maxArrayLengthが、呼び出し元のアプリのapp/web.configファイルとWCFサービスのweb.configファイルの両方で設定されていることを確認する必要があります。IIS 7以降でホストされている場合は、IIS要求フィルタリング設定も調整する必要がある場合があります。IISで、構成するサーバー/サイト/アプリケーションの要求フィルタリング機能に移動します。ここでは、右側のペインのオプションに[機能設定の編集]アクションがあります。それを選択し、ここでも最大許容コンテンツ長の値を設定します。

于 2012-07-12T21:29:16.747 に答える