Представьте себе дуплексный сервис WCF, содержащий список подписчиков.В какой-то момент служба отправляет данные всем абонентам, и некоторые из них могут немедленно снова позвонить в службу.ConcurrencyMode службы - Single, поэтому этот вызов завершается с ошибкой.
Я хотел бы избежать этого исключения и нашел два возможных решения:
- Измените ConcurrencyMode на Reentrant илидаже несколько.Для этого требуется внутренняя синхронизация, поэтому я бы предпочел ее избежать.
- Убедитесь, что клиент ожидает завершения вызова с сервера, прежде чем снова вызывать.Это требует некоторой буферизации на стороне клиента, но я, вероятно, все еще выберу ее.
Что вы думаете об этих идеях?Есть ли другие способы?Как ты решил это?