对于我开发的这个WCF服务,我必须将MaxReceivedMessageSize设置为5MB。我目前的问题是弄清楚是否有更大的MaxBufferPoolSize值,如5MB,或保留原来的512KB值。
有谁知道这种情况的推荐设置是什么? 总之,我应该设置MaxBufferPoolSize = 5242880(5MB),还是MaxBufferPoolSize = 524288(512KB)?
更新:为了便于说明,该服务旨在插入新的客户记录以及一些扫描的文档。因此,邮件大小可能达到5MB。
我们可以尝试使用替代技术分离扫描文档的上传,但要求是客户记录和扫描文档必须在同一个交易中,所以我们决定采用这种方法,直到我们弄清楚如何使用WCF的交易能力。
答案 0 :(得分:9)
查看这篇文章。 http://kennyw.com/?p=51
建议将大型消息的MaxBufferPoolSize设置为零,以避免缓冲。
答案 1 :(得分:2)
将大量数据传输到基于WCF的服务是完全可以的,但是你应该研究一种支持流而不是缓冲传输的绑定(BasicHttpBinding或CustomBinding),这样每个服务实例都不会过多地占用存储器中。
- larsw
答案 2 :(得分:0)
如果您正在尝试传输文件等,这似乎是您唯一的选择。否则,我会查看为什么首先在服务中发送这么大的数据。如果它是文件等,你只需要忍受那么大的尺寸和可能的影响。如果它是您正在移动的文件,您也可能想要尝试FTP组件或其他东西。
我可以通过一些细节提供更多信息。我稍后会回来查看你是否在你的问题中添加了任何内容。
答案 3 :(得分:-4)
5 Mb似乎是通过Web服务传输的大量数据。 您应该首先考虑的是发送更少的数据。 其次,您需要根据需要设置大小。