netTcpBinding или wsHttpBinding - PullRequest
       37

netTcpBinding или wsHttpBinding

17 голосов
/ 10 ноября 2009

Служба WCF размещена в качестве службы Windows, а клиент является приложением ASP.Net, использующим методы службы WCF.

В процессе реализации безопасности я запутался из-за того, что среди netTcpBinding / wsHttpBinding подойдет для моего случая.

Скорее всего, все приложения в сцене (служба WCF, служба Windows, веб-сайт ASP.Net) будут находиться на разных серверах в нашем офисе, то есть в интрасети. Веб-сайт ASP.Net будет доступен пользователям через Интернет.

Хотя я всегда могу использовать wsHttpBinding здесь, будет ли уместно установить конечную точку службы, используя netTcpBinding в моем случае?

Ответы [ 5 ]

13 голосов
/ 10 ноября 2009

Проверьте это для сравнения всех различных встроенных привязок:

Настройка системных привязок - MSDN

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

10 голосов
/ 10 ноября 2009

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

Однако, если вы управляете и клиентом, и сервисом, и они оба используют WCF, netTcpBinding будет намного быстрее. Если у вас нет межсетевого экрана между этими двумя, я бы выбрал это.

6 голосов
/ 10 ноября 2009

Поскольку к вашим службам WCF будут обращаться приложения, находящиеся в вашем офисе (INTRANET), я бы выбрал netTcpBinding .

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

Следующие URL помогут получить больше информации

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

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

6 голосов
/ 10 ноября 2009

Используйте netTcpBinding вместо wsHttpBinding, если вы хотите обменять функциональную совместимость на производительность, зная, что вы можете легко отменить сделку, если вы не удовлетворены результатами (это вопрос изменения значений конфигурации).

0 голосов
/ 03 декабря 2013

Поскольку ваша служба WCF является службой Windows +1 для netTcpBinding. Размещать netTcpBinding на IIS сложно.

...