2014-02-07 6 views
1

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

В чем разница между сервисом wcf добавить ссылку & создание прокси-сервера через канал?

Я думаю, когда мы создаем прокси-сервер wcf с фабрикой каналов, то каждый раз, когда мы запускаем приложение, каждый раз создается прокси-сервер. поэтому я думаю, что этот процесс медленнее, чем добавить ссылку на службу, потому что когда мы добавляем ссылку на службу, прокси создается только один раз.

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

ответ

0

На самом деле очень мало различий. Если вы посмотрите на код, созданный Add Service Reference, вы увидите, что он использует ChannelFactory внутренне.

Лучший ресурс, чтобы понять, что происходит, когда вы используете Add Service Reference или сделать это самостоятельно вручную является Miguel Castro's WCF the Manual Way…the Right Way

Кроме того, вы можете прочитать в разделе о "Adding Behaviors to the Runtime" из Extending WCF with Custom Behaviors, он объясняет, как обрабатывается метаданные.

В основном, когда вы размещаете службу (создайте ServiceHost, либо явно, путем добавления службы ServiceHost, либо когда вы размещаете свою службу в IIS, и она создается IHttpHandler, которая обрабатывает файл .svc), тип сначала считывается (поиск атрибутов), а затем файл конфигурации (web/app.config). То же самое происходит и с клиентом, хотя не очень часто встречаются аннотации в интерфейсе контракта в клиенте.

+0

Когда использовать канал завод, пожалуйста, сообщите мне правильную ситуацию. спасибо – Thomas

+0

@Thomas На мой взгляд, всегда лучше использовать ChannelFactory, потому что если вы используете Add Service Reference, как объясняет Мигель Кастро, он добавляет много вещей, которые вам, вероятно, не понадобятся (например, источники данных, много вещей в web.config, который должен присутствовать только в качестве примера). – Rui