私はこの問題を数日間調査してきましたが、ほとんどのソリューションでは、app.config ファイルと web.config ファイルの両方で MaxReceivedMessageSize バインディング設定を変更することが言及されています。ただし、私のソリューションには app.config ファイルがないため、ここで何が間違っているのか正確にはわかりません。
私の Web クライアントは IIS 7 から展開されています。xml データを含む JavaScript フォームを文字列として WCF Web サービスに非同期的に送信し、そこからクライアントでファイルのダウンロードをトリガーしようとしています。これは小さなファイルでは機能しますが、バインドがデフォルトに落ちているように見えるため、大きなファイルでは失敗します。
svclog で WCF トレーサを使用すると、「受信メッセージの最大メッセージ サイズ クォータ (65536) を超えました。クォータを増やすには、適切なバインド要素で MaxReceivedMessageSize プロパティを使用してください。」と表示されます。私のサービスから来ています。
これが私のリクエストに適用されていないことがわかっている私のweb.configです。したがって、私のリクエストは私の JavaScript クライアントから離れることさえありません。
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="customBindingNameForLargeMessages"
maxReceivedMessageSize="2147483647" transferMode="Streamed">
<readerQuotas maxDepth="2147483647"
maxStringContentLength="2147483647"
maxArrayLength="2147483647"
maxBytesPerRead="2147483647"
maxNameTableCharCount="2147483647" />
</binding>
</webHttpBinding>
</bindings>
<client>
<endpoint address="http//localhost:32478/Services/MobileConsoleDownloadService.svc"
binding="webHttpBinding" bindingConfiguration="customBindingNameForLargeMessages"
contract="Foo.Bar.MobileConsole.Services.IMobileConsoleDownloadService"
name="" />
</client>
<services>
<service name="Foo.Bar.MobileConsole.Services.MobileConsoleDownloadService">
<endpoint address="http:localhost:32478/Services/MobileConsoleDownloadService.svc"
binding="webHttpBinding" bindingConfiguration="customBindingNameForLargeMessages"
name="" contract="Foo.Bar.MobileConsole.Services.IMobileConsoleDownloadService" />
</service>
</services>
</system.serviceModel>