如何增加邮件大小配额
我有一个WCF服务,它从数据库返回1000条记录到客户端。 我有一个ASP.NET WCF客户端(我在asp.net Web应用程序项目中添加了服务引用来使用WCF)。
当我运行客户端应用程序时,我收到以下消息:
传入消息的最大消息大小限额(65536)已被超出。 要增加配额,请在适当的绑定元素上使用MaxReceivedMessageSize属性。
任何帮助? 如何增加邮件大小配额?
在App.config或Web.config文件中,您需要这样的内容来增加消息大小配额:
<bindings>
<basicHttpBinding>
<binding name="basicHttp" allowCookies="true"
maxReceivedMessageSize="20000000"
maxBufferSize="20000000"
maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32"
maxArrayLength="200000000"
maxStringContentLength="200000000"/>
</binding>
</basicHttpBinding>
</bindings>
并在您的端点配置中使用绑定名称,例如
...
bindingConfiguration="basicHttp"
...
值的理由很简单,它们足够大以容纳大多数消息。 您可以调整该号码以符合您的需求。 低默认值基本上是为了防止DOS类型的攻击。 使其达到20000000将允许分布式DOS攻击生效,默认的64k大小需要大量的客户端来压倒大多数服务器。
如果在使用WCF测试客户端时仍然收到此错误消息,这是因为客户端具有单独的MaxBufferSize设置。
纠正这个问题:
将出现可编辑设置列表,包括MaxBufferSize。
注意:默认情况下,自动生成的代理客户端还将MaxBufferSize设置为65536。
如果您要动态创建WCF绑定,请使用以下代码:
BasicHttpBinding httpBinding = new BasicHttpBinding();
httpBinding.MaxReceivedMessageSize = Int32.MaxValue;
httpBinding.MaxBufferSize = Int32.MaxValue;
// Commented next statement since it is not required
// httpBinding.MaxBufferPoolSize = Int32.MaxValue;
链接地址: http://www.djcxy.com/p/46643.html