Регулирование WCF WebHttpBinding - PullRequest
0 голосов
/ 06 мая 2011

У меня есть служба WCF, использующая WebHttpBinding.

Я использую следующую конфигурацию:

InstanceContextMode = InstanceContextMode.Single, ConcurrencyMode = ConcurrencyMode.Multiple

Я ограничил MaxConcurrentCalls до 20.

Я вижу следующее: если достигнут предел 20, новые подключения / запросы помещаются в очередь. Как я могу добиться, чтобы вместо этого отправлялось что-то вроде сообщения «служба занята»?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 07 февраля 2014

Я думаю, что в таком случае клиенту лучше определить, что служба занята тайм-аутом для запроса, а не происходит сбой службы с кодом ошибки.

0 голосов
/ 06 мая 2011

«Служба занята» является результатом того, что WCF не удалось обработать сообщение.Я не уверен, почему вы бы предпочли неудавшийся запрос, а не тот, который мог бы занять немного больше времени для успешной обработки.Кроме того, WCF предоставляет параметры регулирования службы, но я не верю, что вы можете напрямую настроить встроенный механизм организации очередей WCF.

Даже для одноэлементной конфигурации (maxConcurrentCalls = "1" или InstanceContextMode.Single), как выКак было показано, на регулирование влияют также два других параметра (maxConcurrentSessions и maxConcurrentInstances), а не только одновременные вызовы. В этой статье представлен хороший обзор влияния трех задействованных параметров.Изменяя их и, возможно, настройку тайм-аута, вы, вероятно, можете принудительно вызвать условие «сервис занят», если это действительно то, что вам нужно.

...