Book Essential WCF утверждает, что NetTcpBinding.MaxConnections
ограничивает количество подключений к конечной точке.Таким образом, если для свойства установлено значение 10, к этой конечной точке будут разрешены только 10 одновременных подключений.
Но в следующем блоге http://kennyw.com/work/indigo/181 утверждается, что это свойство не ограничивает число одновременных подключений, а только указывает максимальное количество подключений, которые будут кэшироваться и использоваться другим каналом:
MaxConnections для TCP - это не жесткое и быстрое ограничение, а скорее ручка для соединений, которые мы будем кэшировать в нашем пуле соединений.То есть, если вы установите MaxConnections = 2, вы все равно сможете одновременно открыть 4 клиентских канала на одной и той же фабрике.Однако когда вы закроете все эти каналы, мы оставим только два из этих соединений (при условии, конечно, IdleTimeout) для будущего использования канала.Это помогает повысить производительность в тех случаях, когда вы создаете и используете клиентские каналы.Эта ручка также будет применяться к эквивалентному использованию на стороне сервера (то есть, когда канал на стороне сервера закрыт, если у нас меньше, чем MaxConnections в нашем пуле на стороне сервера, мы инициируем I / O для поискадругой новый клиентский канал).
Так что же верно?
РЕДАКТИРОВАТЬ:
Прежде всего, вы имеете в виду NetTcpBinding.MaxConnections, верно?
Да, спасибо ... Я исправил опечатку
См. Официальные документы по http://msdn.microsoft.com/en-us/library/system.servicemodel.nettcpbinding.maxconnections.aspx и особенно http://msdn.microsoft.com/en-us/library/ms731078.aspx -поведение на самом деле отличается в зависимости от того, сервер это или клиент, но ни в коем случае это не жесткое ограничение на количество соединений.(На клиенте это ограничение на соединения, которые объединяются, а на сервере это ограничение на соединения, которые еще не были приняты уровнем ServiceModel).
a) Я полагаюпод «пулом» вы подразумеваете номер соединения, которое будет использоваться другими каналами.Но в блоге говорится, что это относится как к клиенту, так и к серверу, а если я вас правильно понимаю, вы говорите на сервере, что это означает количество соединений, ожидающих принятия на уровне ServiceModel?
Таким образом, если для свойства установлено значение 10, то только 10 подключений будет разрешено ожидать принятия, а если другое подключение попытается ожидать, оно будет немедленно отклонено?