InstanceContextMode: single
создает синглтон - только один экземпляр вашего класса обслуживания сможет обслуживать запросы.
ConcurrencyMode: single
означает, что одноэлементный класс обслуживания может обрабатывать только один запрос за раз, например, он будет последовательно обрабатывать входящие запросы
Используя эти две настройки, вы создали себе узкое место ... да, запросы будут обрабатываться последовательно, один за другим. Поэтому очевидно, что в какой-то момент второй и последующий запрос должны встретиться с чем-то вроде тайм-аута или чего-то подобного и быть отброшенными. Эти тайм-ауты обычно устанавливаются на 1 минуту, поэтому 10-секундная транзакция не должна вызывать каких-либо проблем ....
Это действительно зависит от того, как вы делаете эти звонки, и, поскольку вы вообще не указали код, я могу только догадываться. Вы используете один клиентский прокси WCF? Или у вас действительно есть четыре отдельных экземпляра приложения, каждый из которых отправляет запрос?
Получаете ли вы какие-либо ошибки или неисправности на стороне клиента, куда вы отправляете запросы? Если так: что за ошибки? Ваш клиентский код вызывает начало сеанса?
Просто из любопытства: это только мысленный эксперимент или есть какая-то конкретная причина, по которой вы хотите произвольно создать такое узкое место в вашей системе? Я рекомендую использовать InstanceContextMode = PerCall, и это решит все эти проблемы, я уверен: все четыре запроса получат собственную копию класса обслуживания, и они должны обрабатываться одновременно, просто отлично.