【发布时间】:2013-02-06 15:08:01
【问题描述】:
在运行应用程序之前,如何将 app.config 文件中的 maxReceivedMessageSize 和 maxBufferSize 参数增加到 2000000。
【问题讨论】:
标签: c# .net winforms wcf service-model
在运行应用程序之前,如何将 app.config 文件中的 maxReceivedMessageSize 和 maxBufferSize 参数增加到 2000000。
【问题讨论】:
标签: c# .net winforms wcf service-model
您需要在绑定上执行此操作,但您需要在客户端和服务器上执行此操作。比如:
<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。视情况而定!
如果你的请求太大(即服务操作的方法参数是内存密集型)在服务端设置属性,如果响应太大(即服务操作的方法返回值是内存)密集)在客户端设置值。
有关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"
在客户端和服务器端
【讨论】: