В чем разница между приложением службы WCF и библиотекой службы WCF?

118

Я разрабатываю веб-службу WCF и для этого использовал шаблон приложения службы WCF.

Отвечает ли этому требованию создание «приложения службы WCF»? В чем преимущество создания библиотеки службы WCF над приложением службы WCF?

Ашиш Ашу
источник

Ответы:

148

Сервисное приложение включает в себя уже настроенный для вас хост веб-сайта. Библиотека служб - это библиотека служб, на которые хост может ссылаться и запускаться.

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

Изменить : изменения в IIS с тех пор, как я написал это, позволяют использовать более широкий спектр протоколов для активированных служб ASP.NET, поэтому выбор приложения службы гораздо менее ограничивает, чем раньше.

Андерсон Имес
источник
1
У кого-нибудь есть информация о новых протоколах / привязках, доступных при размещении на IIS?
Аллен Райс
@AndersonImes Я знаю, что это старый пост, но надеюсь, что вы можете помочь. Я везде искал и не могу найти, предназначена ли служба WCF для замены веб-службы в .NET 3.5 и, следовательно, почему шаблон был удален в .NET 4? Спасибо. :)
Chiramisu
2
@Chiramisu WCF предоставляет гораздо больше преимуществ и гибкость ... Я нашел этот очень полезный: пример Codeproject , Stackoverflow вопрос
StoriKnow
@Sam Спасибо, Сэм, очень полезно. Итак, в основном WCF может делать все, что могут веб-службы, и даже больше? Любые ограничения, мне интересно ... :)
Chiramisu
1
@Chiramisu рад помочь! Ограничения есть всегда, но я полагаю, что WCF имеет гораздо меньше ограничений, чем типичный веб-сервис.
StoriKnow,
10

Если у вас есть только один проект, я вижу только дополнительную сложность, если вы разделитесь из-за этого. Я использовал библиотеку, когда у меня были некоторые конкретные варианты использования, когда мне приходилось размещать как в службе Windows, так и в IIS.

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

Gary
источник