net.pipe против net.tcp против http Привязки - PullRequest
60 голосов
/ 19 апреля 2009

Я новичок в WCF и хотел бы знать различия / преимущества / ограничения / и т. Д. Каждой из следующих привязок:

net.pipe
net.tcp
http

Буду признателен за поддержку сценариев использования каждой привязки и других примеров.

Ответы [ 3 ]

65 голосов
/ 19 апреля 2009

Хотя это не очень удобно для предоставления конкретных примеров использования, здесь есть ссылка из MSDN, в которой перечислены все функции для привязок.

http://msdn.microsoft.com/en-us/library/ms730879.aspx

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

Flowchart

Источник: http://bloggingabout.net/blogs/dennis/archive/2006/12/01/WCF-Binding-decision-chart.aspx

Вот хорошая общая статья, которую я использовал в прошлом.

http://mkdot.net/blogs/dejan/archive/2008/03/31/wcf-binding-decision.aspx (или здесь в обратном пути, если ссылка больше не работает для вас).

52 голосов
/ 19 апреля 2009

net.pipe, быстрый и безопасный, потому что ваш веб-сервис недоступен из сети (обычно вы будете использовать net.pipe для легкого взаимодействия со службой Windows).

http, вы будете использовать его по причине совместимости, если ваша веб-служба не использует HTTP, Silverlight или Flash не могут использовать ее (поскольку браузер фильтрует не http-пакеты, как это делает брандмауэр).

net.tcp, немного быстрее, потому что ваше мыльное сообщение не заключено в HTTP-запрос, но вы не можете вызвать свой веб-сервис с технологией RIA, и некоторые брандмауэры отбросят ваше сообщение.

14 голосов
/ 19 апреля 2009

Windows Communication Foundation (WCF) - это инфраструктура для создания служб, обрабатывающих сообщения XML. WCF позволяет передавать сообщения с использованием разных транспортных протоколов (таких как HTTP, TCP и MSMQ) и с использованием разных представлений XML (таких как текстовые, двоичные или MTOM), которые обычно называют кодировкой сообщений в WCF.

Если вы хотите разместить множество служб WCF на одной машине и хотите, чтобы они использовали общую память для связи, используйте именованный канал => net.pipe, а затем используйте tcp для связи со службами WCF на разных машинах.

Настройка привязки nettcp направлена ​​на создание стека каналов, который будет работать лучше в средах Windows, предоставляя вам отличный вариант для замены ваших различных вложений COM + и .NET для удаленного взаимодействия.

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

...