我使用System.ServiceModel.WsHttpBinding连接到Tridion核心服务。该服务只能由经过身份验证的用户使用,并且可能只能由我控制的代码使用。我必须选择值以下我应该如何确定Tridion核心服务绑定的配额?
- (默认524,288字节)
- MaxReceivedMessageSize(默认65,536字节)
- ReaderQuotas。 MaxArrayLength(默认16384字节)
- ReaderQuotas。 MaxBytesPerRead(默认4096字节)
- ReaderQuotas。 MaxNameTableCharCount(默认16384字节)
- ReaderQuotas。 MaxStringContentLength(默认8192个字节)
我看到了使用总是设定中的至少一些这些为比默认值更大的值,例如4Mb的核心服务的代码示例。这是因为使用其他值(例如默认值)时存在已知问题?
MaxBufferPoolSize允许您防止过多的垃圾回收。这只是一个监测GC并基于此进行调整的问题?
MaxReceivedMessageSize,MaxArrayLength和MaxBytesPerRead有防御Dos攻击,所以在我的情况下,也许我可以通过增加这些来提高吞吐量。会有很多人帮忙吗?
MaxNameTableCharCount似乎有防止一些不可控的增长,你可能不希望不受控制地增长,所以也许保留默认将是一个很好的事情。
上MaxStringContentLength的文件没有指定如果超出配额会发生什么。大概ReadContentAsString会以某种方式失败,所以也许这个值应该很大。
所以 - 我应该将这些值保留为默认值吗?这会导致我的问题吗?我应该增加他们到大值?这将有助于吞吐量等,还是更可能导致其他问题?
通过阅读一些答案,我现在感觉到调整这些设置似乎是非常必要的(至少对于生产工作来说),也许零配置实现(即仅代码)可能是反模式。思考? – 2012-04-19 18:34:31