Двоичный файл WCF по опции TCP, действительно ли это применимо только для Интранет или Интернета также?
Действительно ли TCP применим только для Интранет?
Ответ: это зависит от обстоятельств. Насколько мне известно, двоичная кодировка WCF требует, чтобы обе конечные точки были конечными точками WCF (что в настоящее время ограничивает вас Windows, если / пока Mono не поддерживает двоичное кодирование). Другая проблема заключается в том, можете ли вы связаться с портом, который прослушивает удаленный сервер. Одна из причин, по которой запуск сервисов через HTTP стал настолько популярным, заключается в том, что порт 80 больше похож на открытый.
Сериализатор и транспорт в значительной степени не связаны. Существуют предварительно настроенные привязки для общих сценариев, но я понимаю, что вы можете подключить двоичный сериализатор ( NetDataContractSerializer
) к любому транспорту. Или напишите свой собственный ;-p
Однако - другой транспорт может быть сложнее настроить (брандмауэры и т. Д.), Чем простой HTTP.
См. Здесь (хотя я бы не согласился с утверждением о скорости; я видел NetDataContractSerializer
, который иногда разбивал ...)
Повторный комментарий - не столько ] транспорт (я подозреваю, что вам лучше остаться с http), но рассмотрите это и это . Альтернативный двоичный сериализатор , отлично подходит для отправки некоторых типов сообщений. И он также хорошо работает с MTOM (через http).