WCF многопоточные вызовы - PullRequest
       2

WCF многопоточные вызовы

0 голосов
/ 14 апреля 2010

Мы разработали многопоточный сервер, который получает данные от нескольких клиентов и вызывает различные службы WCF. Существует много случаев, когда два (или более) разных клиента вызывают сервер одновременно, и сервер пытается вызвать удаленный WCF одновременно из двух разных потоков. Мы столкнулись с некоторыми проблемами, особенно когда удаленная служба WCF не работает. Правильно ли мы делаем вещи? Есть ли лучшая практика для этого сценария?

Ответы [ 2 ]

2 голосов
/ 14 апреля 2010

Лучшая практика для большинства случаев такова:

  • ваш клиент вызывает службу WCF с шаблоном «per-call»
  • каждый запрос от клиента получает свой собственный, нетронутый экземпляр класса сервера, который обрабатывает запрос и удаляется после его выполнения
  • поэтому серверный класс является однопоточным, не подлежит повторному вводу и не требует решения многозадачных задач
  • серверный класс не имеет состояния и не удерживает какие-либо ресурсы сервера или что-либо еще
  • любое «состояние» или данные, которые необходимо сохранить между вызовами, хранятся в подходящем месте, например, база данных

Это, безусловно, самая простая установка, и она должна быть наилучшим выбором как минимум для 80% ваших дел.

Ознакомьтесь с этой прекрасной статьей MSDN Magazine Откройте для себя мощные методы управления экземплярами для разработки приложений WCF Джувала Лови, чтобы получить больше информации о различных имеющихся у вас вариантах.

0 голосов
/ 14 апреля 2010

Вы должны быть немного более конкретны в отношении типов проблем, с которыми вы сталкиваетесь, но вы, возможно, захотите прочитать об идемпотентности и состояниях услуг.

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