Проверьте это сообщение в блоге (или много других, похожих)
Диаграмма выбора правильного переплета - из книги Ювала Лоуи Programming WCF Services
и дает лучшее руководство, действительно:
Теперь ваше дополнительное требование потоковой передачи ограничивает количество вариантов, очевидно - о net.msmq, очевидно, не может быть и речи.
Потоковая передача поддерживается basicHttpBinding
, netTcpBinding
и netNamedPipesBinding
. Возможно, о последнем также не может быть и речи, поскольку он работает только на одной машине (клиент и сервер).
Таким образом, выбор действительно сводится к basicHttpBinding
против netTcpBinding
. basicHttp работает через http-соединения и порт 80, поэтому он хорошо подходит для Интернета и сценариев «открытого доступа», в то время как netTcp может быть немного быстрее, но требует определенных портов, которые должны быть открыты на сервере и / или брандмауэрах - так что он, вероятно, лучше подходит для корпоративных сетей, но не для общего Интернета как такового.
Другие привязки могут учитываться в очень специфических сценариях, например, вам может понадобиться изучить привязки ретрансляции, если вы переходите в облако, и привязки федерации, если вы ищете федеративную безопасность, но они здесь не применяются, когда речь идет о потоковой передаче.