Любые рекомендации для размещения службы WCF? - PullRequest
4 голосов
/ 20 января 2011

Имеет приложение winform и хочет разместить в нем службу WCF.Нужно ли размещать его в отдельном домене приложений?Любые рекомендации?

Ответы [ 4 ]

4 голосов
/ 20 января 2011

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

Когда служба размещается в потоке пользовательского интерфейса, она может напрямую взаимодействовать с пользовательским интерфейсом, но обработка запроса является частью цикла сообщенийвсе запросы на обслуживание обрабатываются одним потоком (последовательно).Когда запрос обрабатывается, никакое другое событие Windows (включая события пользовательского интерфейса) не может быть обработано = приложение зависает.

Когда служба размещается в другом потоке, она ведет себя как в любой другой среде размещения, но не может напрямую взаимодействовать с пользовательским интерфейсом.- Вы должны использовать вызов делегата.

Способы принудительного запуска службы в собственных потоках:

  • Создание и открытие ServiceHost экземпляра перед вызовом Application.Run (начало сообщения Windowsцикл)
  • Создание и открытие ServiceHost экземпляра в отдельном потоке
  • Использование [ServiceBehavior(UseSynchronizationContext = false)] в реализации вашей службы
1 голос
/ 20 января 2011

Нет, вам не нужно размещать его в отдельном домене приложений. Просто примите это. В этом нет ничего особенного в WinForms.

0 голосов
/ 20 января 2011

Вы можете принять участие в Win-форме, но вы должны поддерживать ее на протяжении всей игры.

Также предлагаем вам разместить в IIS, чтобы любой тип клиента воспользовался вашим сервисом.

0 голосов
/ 20 января 2011

Что делает ваше приложение? Является ли служба частью регулярных функций приложений или полностью отдельной логической сущностью?

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

Просто мой 2с. : -)

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