Когда вы настраиваете свою службу, вам нужно настроить две вещи:
- InstanceContextMode - который определяет, сколько экземпляров службы создается для обслуживания клиентских запросов, попробуйтеиспользуйте PerCall / PerSession, если это возможно, поскольку они обеспечивают максимальный параллелизм.
- ConcurrencyMode - определяет, является ли каждый экземпляр службы однопоточным или многопоточным.
Исходя из предоставленной вами информации, я бы порекомендовал изменить эти две настройки и посмотреть, решит ли это вашу проблему:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall,
ConcurrencyMode = ConcurrencyMode.Multiple)]
public class MyService : IMyService { ... }
Я собрал в блоге то, что узнал, поканемного поработав над нашими службами WCF, может быть, это поможет:
http://theburningmonk.com/2010/05/wcf-improve-performance-with-greater-concurrency/