40

如何在运行应用程序之前将 app.config 文件中的 maxReceivedMessageSize 和 maxBufferSize 参数增加到 2000000。

4

7 回答 7

65

您需要在绑定上执行此操作,但您需要在客户服务器上执行此操作。就像是:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding maxBufferSize="64000000" maxReceivedMessageSize="64000000" />
        </basicHttpBinding>
    </bindings>
</system.serviceModel>
于 2013-02-21T10:24:48.607 回答
15

您可以在 app.config 中执行此操作。像那样:

maxReceivedMessageSize="2147483647" 

(最大值为Int32.MaxValue

或在代码中:

WSHttpBinding binding = new WSHttpBinding();
binding.Name = "MyBinding";
binding.MaxReceivedMessageSize = Int32.MaxValue;

笔记:

如果您的服务对广阔的世界开放,请在增加此值时考虑安全性。

于 2013-02-21T10:44:11.763 回答
15

当前接受的答案不正确。不需要在客户端和服务器绑定上设置和maxBufferSizemaxReceivedMessageSize这取决于!

如果你的请求太大(即服务操作的方法参数是内存密集型)设置服务端的属性,如果响应太大(即服务操作的方法返回值是内存密集型)设置客户端的值。

maxBufferSize关于和maxReceivedMessageSize查看MaxBufferSize 属性的区别?.

于 2016-03-07T15:05:39.960 回答
2

如果您使用的是自定义绑定,则可以像这样设置值:

<customBinding>
    <binding name="x">
        <httpsTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
    </binding>
</customBinding>
于 2017-12-12T15:35:38.790 回答
0

简单的解决方案:检查它是否适合您..

转到 web.config

查找客户端使用的绑定。

改变为,

maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"

完毕。

于 2014-06-18T07:04:49.450 回答
0
binding name="BindingName" 
maxReceivedMessageSize="2097152" 
maxBufferSize="2097152" 
maxBufferPoolSize="2097152" 

在客户端和服务器端

于 2015-07-23T08:57:32.000 回答
0

在客户端打开 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>
于 2018-01-11T13:15:08.537 回答