Я должен разместить свой сервис WCF в IIS?

Только для столкновения потока я попробовал DOMPDF, и это работало отлично. Я использовал DIV и другие элементы блочного уровня для расположения всего, я сохранил его строго CSS 2.1, и это играло очень приятно.

15
задан Blorgbeard 4 August 2009 в 05:50
поделиться

4 ответа

Вам нужно в основном рассмотреть три варианта:

1) Хостинг в IIS6 (Windows Server 2003/2003 R2): в этом сценарии вы можете размещать только протоколы HTTP - ничего больше. Это само по себе является серьезным ограничением, вы не можете использовать, например, netTcp для сценариев интрасети.

2) Хостинг в IIS7 / WAS (Vista, Server 2008): это дает вам больше возможностей с точки зрения поддерживаемых протоколов, и среда хостинга выглядит сначала как победитель.

3) Самостоятельный хостинг: в этом сценарии все зависит от вас, делать все, что вам нужно для размещения и запуска ваших служб.

Если вы пока откажетесь от варианта №1 (если у вас только IIS6 доступный, я бы всегда использовал собственный хостинг), все сводится к IIS7 по сравнению с самостоятельным хостингом.

IIS7 дает вам «активацию по запросу», например, код вашей службы не всегда находится в памяти, но будет загружен и создан при поступлении запроса. Это может быть плюсом.

С другой стороны, хостинг в IIS7 / WAS лишает вас возможности указывать собственные конечные точки - ваша конечная точка и, следовательно, адрес службы являются виртуальный каталог, в котором находится ваш файл "MyService.svc" - точка. Вы не можете изменить это каким-либо образом, форму или форму.

Самостоятельный хостинг может показаться трудоемким, но он дает вам максимальную гибкость: вы можете выбирать свои протоколы по своему усмотрению, вы можете настроить свои собственные адресную схему так, как вам нравится, и вы полностью контролируете, что и когда будет сделано. Вы можете ввести свой собственный ServiceHost, если вам нужно проделать некоторую дополнительную работу по размещению сервисов и т. Д.

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

Короче говоря: в конце концов, если вы действительно хотите контролировать происходящее, я бы всегда рекомендовал самостоятельный хостинг.

Это может измениться после появления нового «Дублина». Server-Addon от Microsoft выходит примерно через некоторое время после запуска .NET 4, вероятно, в начале 2010 года, но об этом еще рано говорить.

Надеюсь, это поможет.

Марк

При разработке / отладке вы можете полностью разместить свои службы WCF в консольном приложении, которое вы можете запускать и останавливать на досуге.

Короче говоря: в конце концов, если вы действительно хотите контролировать происходящее, я всегда рекомендовал бы самостоятельный хостинг.

Это может измениться после появления нового «Дублина» Server-Addon от Microsoft выходит примерно через некоторое время после запуска .NET 4, вероятно, в начале 2010 года, но об этом еще рано говорить.

Надеюсь, это поможет.

Марк

При разработке / отладке вы можете полностью разместить свои службы WCF в консольном приложении, которое вы можете запускать и останавливать на досуге.

Короче говоря: в конце концов, если вы действительно хотите контролировать происходящее, я бы всегда рекомендовал самостоятельный хостинг.

Это может измениться после появления нового «Дублина». Server-Addon от Microsoft выходит примерно через некоторое время после запуска .NET 4, вероятно, в начале 2010 года, но об этом еще рано говорить.

Надеюсь, это поможет.

Марк

16
ответ дан 1 December 2019 в 02:46
поделиться

Я сам предпочитаю автономные службы (служба Windows). С учетом сказанного есть веские причины для выбора любого пути.

В MSDN есть несколько ценных статей о различных стратегиях хостинга WCF .

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

6
ответ дан 1 December 2019 в 02:46
поделиться

Я бы сказал, что без IIS7 и WAS вы не можете размещать что-либо, кроме конечных точек на основе HTTP с использованием IIS. Таким образом, вы, скорее всего, захотите использовать собственный хост для гибкости.

Что касается ваших данных, любая служба может быть закодирована с таким состоянием, что данные кэшируются и т. Д.

Несколько запросов потребуют от вас использования параллелизма WCF. Вы хотите установить атрибуты на своем хосте службы:

[System.ServiceModel.ServiceBehavior(UseSynchronizationContext = false,
    InstanceContextMode = System.ServiceModel.InstanceContextMode.PerCall,
    ConcurrencyMode = System.ServiceModel.ConcurrencyMode.Multiple)]
public class MyService : IMyService
{
}

WCF - это большой зверь, я рекомендую вам взглянуть на книгу Юваля Лоуи и все остальное, что вы можете получить, вы не узнаете его за день.

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

Может быть, немного не по теме, но это касается четвертого рассмотрения.

Если вы в конечном итоге переходите на собственный хостинг и вам нужно быть максимально «настраиваемым в отношении конечных точек», вы можете взглянуть на Managed Services Engine . MSE - это продукт с открытым исходным кодом, созданный службами Microsoft Services, который позволяет виртуализировать ваши службы. По сути, это узел WCF, который использует метаданные из собственного репозитория для предоставления услуг. Некоторые функции: поддержка параллельного управления версиями служб, возможность включения / отключения операций над службами, возможность сопоставления операций с конечными точками, возможность применять политики к операциям.

Я не уверен, соответствует ли он вашим потребностям, но на него стоит взглянуть, особенно если вам нужно максимально настраивать.

1
ответ дан 1 December 2019 в 02:46
поделиться
Другие вопросы по тегам:

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