Какие конкретные порты используют различные соединения WCF для связи? - PullRequest
1 голос
/ 11 марта 2012

Я читал в различных книгах / статьях, что некоторые привязки, например netTcpBinding и netMsmqBinding, не могут быть реализованы через Интернет, поскольку порты, которые они используют для связи, блокируются большинством брандмауэров.Это на странице 518 Служб WCF по программированию Ювала Лови:

Привязка MSMQ предназначена для использования в интрасети.По умолчанию он не может проходить через брандмауэры.

Но в то же время я вижу много статей / руководств, посвященных именно этому, реализуют сервисы с netTcpBinding и netMsmqBinding связью через Интернет.Я даже недавно настроил службу WCF с netMsmqBinding, и из первоначальных тестов (хотя мы еще не тестировали службу в производственной среде) она, кажется, прекрасно работает в Интернете, хотя и после многих неудачных попыток и бесчисленных настроек.В любом случае, мой вопрос заключается в том, может ли кто-нибудь сказать мне номера портов, используемых различными типами привязок, и безопасно ли предположить, что эти порты по умолчанию открыты в брандмауэрах.Также рекомендуется использовать netTcpBinding через Интернет, я пытаюсь разместить другую службу, которая будет вызываться клиентами через Интернет, я ожидаю, что более 100 клиентов будут использовать эту услугу в определенный момент времени, поэтому для меня важна производительность(вот почему я заинтересован в идее netTcpBinding через Интернет, а не в wsHttpBinding).

Ответы [ 2 ]

3 голосов
/ 11 марта 2012

Значение по умолчанию для netTcpBinding - TCP / 808.

Существует Microsoft Howto , который описывает порты, используемые MSMQ в различных случаях.

Любая служба, защищеннаябрандмауэр должен иметь правильные порты, открытые в брандмауэре.Пока порты открыты, все будет работать через Интернет.

С учетом сказанного, есть некоторые порты, которые никогда не следует открывать для брандмауэра.Для среды Windows это общие RPC-порты (139, 445), которые позволяют получить доступ к файлу Windows, RPC и удаленному администрированию.Если вы откроете их, вы не сможете ограничить доступ только к одной из служб, любой, кто сможет подключиться к этим портам, сможет получить доступ ко всем основным службам Windows.

1 голос
/ 11 марта 2012

К сожалению, нет порта по умолчанию для TCP общего назначения, поэтому не следует ожидать, что по умолчанию будет открыт любой брандмауэр.Единственные порты по умолчанию предназначены для общеизвестных протоколов на основе TCP (например, для SQL Server, HTTP / S и т. Д.). Если вы можете убедиться, что на ваших клиентах и ​​сервере открыты правильные порты, вы должны иметь возможность надежно работать через Интернет.Если вы не управляете сервером или клиентами, у вас, вероятно, возникнут проблемы с этим подходом.

Если вам нужна производительность, то вы можете рассмотреть компоненты FastInfoset от Noemax..Они могут значительно ускорить HTTP-сервис WCF за счет сжатия и более быстрого кодирования.Они также обеспечивают разумную совместимость с клиентами, не являющимися WCF.Я обнаружил, что в моем случае мы смогли приблизиться к производительности TCP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...