Параллельность потока - PullRequest
0 голосов
/ 10 августа 2010

У меня есть приложение WCF (vb), которое работает нормально, но когда пользователь запрашивает информацию, когда сервер выполняет вызов другому пользователю, все зависают!

1 Ответ

3 голосов
/ 10 августа 2010

Когда вы настраиваете свою службу, вам нужно настроить две вещи:

  • 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...