アプリケーションを実行する前にapp.configファイルのmaxReceivedMessageSizeおよびmaxBufferSizeパラメーターを2000000に増やす方法。
バインディングで行う必要がありますが、両方クライアントおよびサーバーで行う必要があります。何かのようなもの:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding maxBufferSize="64000000" maxReceivedMessageSize="64000000" />
</basicHttpBinding>
</bindings>
</system.serviceModel>
App.configでそれを行うことができます。そのような:
maxReceivedMessageSize="2147483647"
(最大値はInt32.MaxValue
)
またはコード内:
WSHttpBinding binding = new WSHttpBinding();
binding.Name = "MyBinding";
binding.MaxReceivedMessageSize = Int32.MaxValue;
注:
サービスが幅広い世界に開かれている場合は、この値を増やすときにセキュリティについて考えてください。
現在受け入れられている答えは間違っています。クライアントでmaxBufferSize
とmaxReceivedMessageSize
を設定するために必要なのは[〜#〜] not [〜#〜]およびサーバーのバインド。場合によります!
リクエストが大きすぎる場合(つまり、サービス操作のメソッドパラメーターがメモリを集中的に使用する場合)、サーバー側でプロパティを設定し、レスポンスが大きすぎる場合(つまり、サービス操作のメソッドの戻り値がメモリを集中使用する場合)を設定しますクライアント側の値。
maxBufferSize
とmaxReceivedMessageSize
の違いについては、 MaxBufferSize property? を参照してください。
カスタムバインディングを使用している場合、次のように値を設定できます。
<customBinding>
<binding name="x">
<httpsTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
</binding>
</customBinding>
簡単な解決策:動作するかどうかを確認してください。
Web.configに移動
クライアントが使用するバインディングを検索します。
として変更、
maxBufferSize = "2147483647" maxReceivedMessageSize = "2147483647"
できた.
クライアント側でapp.configを開き、maxBufferSizeおよびmaxReceivedMessageSize属性を追加します(使用できない場合)
オリジナル
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service1Soap"/>
</basicHttpBinding>
</bindings>
編集/更新後
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service1Soap" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
</basicHttpBinding>
</bindings>
binding name="BindingName"
maxReceivedMessageSize="2097152"
maxBufferSize="2097152"
maxBufferPoolSize="2097152"
クライアント側とサーバー側