Делает у кого-то есть пример того, почему я саморазместил бы сервис WCF

Я предполагаю, что мой ум так занят IIS и веб-приложениями, что я не могу думать о причине пройти проблему использовать саморазмещенный сервис WCF. У меня всегда была доступность IIS, настолько создающий саморазмещенный сервис WCF походит на большее количество работы, чем я хотел бы сделать. Почему я хотел бы сделать это?

10
задан RJ. 24 May 2010 в 18:25
поделиться

5 ответов

Множество точек:

  • IIS не нужен - это может быть большой плюс на некоторых серверах
  • , вы можете полностью определить адреса служб - в IIS они определяются именем сервера, именем виртуального каталога, а также именем и расширением файла SVC (например, http : //server/virtualdir/yourservice.svc , а при самостоятельном размещении вы можете использовать http: // Server: 7171 / Services / MegaService или что угодно)
  • без риска сталкиваются с проблемами, связанными с перезапуском пулов приложений (это можно значительно уменьшить, используя отдельные выделенные пулы приложений для ваших служб WCF)
  • возможность останавливать и запускать службы NT, например, на некоторое время отключив эти службы (мне кажется, с IIS это сделать труднее)
  • больше контроля над созданием и опциями поддержки ServiceHost
  • для всех протоколов из коробки - требуется netTcpBinding и т. д. дополнительные шаги (которые могут быть забыты) в IIS7 и невозможны в IIS6
13
ответ дан 3 December 2019 в 20:40
поделиться

Если вы используете 64-битную Windows, вы не можете скомпилировать и запустить службу WCF автоматически, вы должны самостоятельно разместить ее.

Я спрашивал об одной конкретной ситуации здесь: Способы доступа к 32-битной DLL из 64-битного exe

У меня было 64-битное приложение, которое требовало использования 32-битной DLL. Поэтому я решил просто обернуть 32-битную DLL в 32-битную службу WCF. Не получилось. Я не мог заставить службу работать в 32-битном режиме. Пришлось использовать собственный хостинг.

1
ответ дан 3 December 2019 в 20:40
поделиться

Все дело в том, как вы хотите использовать WCF. Не всегда логика, которую вы хотите представить в виде службы, должна/может быть размещена в IIS. Например:

  • вы используете WCF для создания P2P-канала между несколькими экземплярами вашего клиентского приложения в локальной сети.
  • вы создаете локальную службу WCF, которая развертывается на клиентском SKU, где IIS не установлен по умолчанию
  • вы хотите полностью контролировать адреса конечных точек
  • вы хотите использовать каналы net.tcp или net.pipe
  • вы хотите полностью контролировать время жизни и модель экземпляра вашей службы
  • вы хотите, чтобы служба работала от имени интерактивного пользователя (имперсонация не всегда является решением)
2
ответ дан 3 December 2019 в 20:40
поделиться

Для примера рассмотрим преимущества хостинга в службе windows:

  • Контролируемое время жизни процесса
  • Область применения
  • Поддерживается на всех версиях Windows
  • Также вы не привязаны только к HTTP, если вы используете Windows 2003 и ниже (без WAS)

Вы также можете рассмотреть

  • Легко отлаживается: Отладка WCF сервисов, которые размещены в самостоятельно размещенная среда обеспечивает привычный способ отладки, без необходимости подключаться к отдельным приложения, которые активируют вашу сервис.
  • Легко развертывается: В целом, развертывание простых приложений Windows так же просто, как xcopy. Вам не нужно никаких сложных сценариев развертывания на фермах серверов и т.п., чтобы развернуть простого приложения Windows, которое служит в качестве WCF ServiceHost.
2
ответ дан 3 December 2019 в 20:40
поделиться

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

0
ответ дан 3 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: