首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BasicHttpBinding推荐设置

BasicHttpBinding推荐设置
EN

Stack Overflow用户
提问于 2013-05-24 08:32:01
回答 1查看 280关注 0票数 0

我的一个进程中有一个内存泄漏(或v.high内存使用),我相信这可能是由于它在构造SOAP客户端时使用的BasicHttpBinding中设置不正确/错误所致。

特别是,我很好奇如何知道如何在绑定上使用MaxBufferSizeMaxBufferPoolSizeMaxReceivedMessageSize。是否有理由建议将其从默认设置中更改?

当前代码就是这样做的,

代码语言:javascript
复制
var binding = new BasicHttpBinding();
binding.MaxBufferSize = 5000000; // (5,000,000)
binding.MaxBufferPoolSize = 5000000;
binding.MaxReceivedMessageSize = 5000000;

binding.ReaderQuotas.MaxStringContentLength = 500000; // (500,000)

我想我的问题是:

  • 这些值是否有可能导致高内存使用率或泄漏?
  • 我是否应该/是否可以安全地将这些更改为默认设置?
  • 仅仅设置.MaxReceivedMessageSize = long.MaxValue.MaxStringContentLength = int.MaxValue会有什么坏处吗?

我可以确认,由于接收到了一些异常长的字符串,所以需要从默认情况下增加MaxStringContentLength,但是我不知道为什么缓冲区被设置为这些大小。

任何帮助都是非常感谢的!

EN

回答 1

Stack Overflow用户

发布于 2013-05-24 08:49:43

请定义“非常高的内存使用率”。

这些值是否有可能导致高内存使用率或泄漏?

我不这么认为,怀疑服务实现比WCF绑定更符合逻辑,WCF绑定实际上只是接收消息并将其传递给代码的一些管道。

我是否应该/是否可以安全地将这些更改为默认设置?

你可以试试。

只设置.MaxReceivedMessageSize = long.MaxValue和.MaxStringContentLength = int.MaxValue会有什么不利之处吗?

手册说:

服务部门可以在电报上接收的消息的大小.以为界,即为每个消息分配的内存量。

因此,我想将其设置为几个任务并不能提高您的服务的内存使用率。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16730719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档