Я использую Silverlight 5.0 и WCF 4.0 со структурой сущностей 4.0. Мой дизайн выглядит следующим образом: клиент Silverlight вызывает агент службы (это просто оболочка для внутренней службы WCF) через обычный синхронный вызов метода. Агент службы Inturn вызывает службу WCF, для которой настроена привязка пользователя с двоичным кодированием и httptransport. Эта служба WCF находится в том же приложении, что и Silverlight, и вызовы от агента службы выполняются с помощью асинхронных методов «operationame». В сервисном агенте есть пользовательские события, которые будут вызваны при вызове метода «операция» завершена. Это событие сервисного агента будет обработано Silverlight. Эта служба WCF снова выполняет вызов распределенной службы WCF с использованием асинхронного метода «operationame».
Мое приложение silverlight имеет четыре разных виджета на экране, и они делают четыре вызова сервисному агенту. Четыре вызова от агента службы запускаются параллельно с действующей службой WCF. Но из службы WCF, находящейся в процессе, вызовы выполняются последовательно для распределенной службы wcf. Я только что проверил с помощью fiddler, который показывает, что в процессе wcf выполняет последовательные вызовы распределенной службы wcf. Я хотел бы сделать это параллельно. Может кто-нибудь, пожалуйста, помогите. Проблема в том, что мой сервер обрабатывает их по одному, а не параллельно. Я подтвердил это через Fiddler, где я увидел, что звонки поступают в WCF последовательно. Распределенная служба WCF настроена как percall с параллельным режимом одиночного и привязки webhttp.
Также у кого-нибудь есть ресурс / ссылки, чтобы понять, как работает модель потоков silverlight / wcf. Мне интересно знать, вызывает ли вызов proxymethodAsync новый поток? Если нет, то как он работает без блокировки потока пользовательского интерфейса?