Я работал над доказательством концепции, используя WCF и MSMQ. Я играл вокруг с настройками дросселя, используя по умолчанию Эта статья и также добавляя мои собственные настройки в файл конфигурации. У меня 2 четырехъядерных процессора Xeon, на которых работает это приложение. Независимо от того, какие настройки я применяю, он всегда захватывает только 8 сообщений за раз (что соответствует моим вычислительным ядрам). Я хочу, чтобы каждое сообщение обрабатывалось в одной транзакции, так что это может быть частью проблемы... не уверен. Я просто предполагал, что он будет обрабатывать гораздо больше сообщений одновременно, чем это происходит.
Поведение службы:
[ServiceBehavior(UseSynchronizationContext = true,
ReleaseServiceInstanceOnTransactionComplete=true,
ConcurrencyMode = ConcurrencyMode.Single,
InstanceContextMode = InstanceContextMode.PerCall)]
Поведение конечной точки:
Мой собственный дросселирование службы:
Я что-то упускаю из виду? Возможно, я просто не до конца понимаю настройки дросселирования по умолчанию / пользовательские настройки (Likely).
EDIT
Я изменил ConcurrencyMode (изменил на Multiple) вместе с параметром ReleaseServiceInstanceOnTransactionComplete. Изменение на Multiple, похоже, ничего не изменило?
EDIT. Может быть, дело в настройке TransactionBatch? У меня он установлен на один...?
Спасибо,
S