Ответ 1
Ключевое решение заключается в том, следует ли поддерживать службу WCF с клиентом сокета или сделать клиент сокета совместимым с сервисом WCF.
Проще будет пытаться соответствовать службе WCF, а не пытаться внедрить что-то пользовательское в WCF, что никогда не бывает легким. В нижней части раздела "Другие ресурсы" вы увидите ссылку, которая описывает проверку сообщений, которая необходима, чтобы попытаться выполнить службу WCF.
Сказав, что сокеты .NET не взаимодействуют с WCF.
Любая попытка сделать это потребует специального программирования на стороне WCF.
Если вы используете TcpClient или сырые сокеты в .NET для подключения к WCF и общения с ним, это не имеет значения. Любая такая интероперабельность должна обрабатываться с помощью пользовательской логики в WCF. Обратите внимание, что Net.Tcp является настраиваемым транспортным протоколом. Это не технически использует TCP так же, как TcpClient.
Например, UDP очень часто используется серверами сокетов в мире Linux. WCF не обеспечивает встроенный транспорт UDP. Тем не менее, есть образец UDP для WCF, который реализует UDP для WCF. К сожалению, этот пример не иллюстрирует связь с сервером сокетов, не использующим WCF UPD.
У меня есть выдающийся вопрос, который довольно подробно, где я объясняю свои усилия, чтобы получить образец кода в целом для проверки на использование UDP...
Возможно ли сделать работу WcfTestClient для пользовательских транспортных каналов?
Никто еще не ответил на мой вопрос. Итак, если вам удастся сделать эту работу, мне очень интересно. Мое дело было вызвано желанием, чтобы служба WCF могла обращаться к серверу сокетов UDP, работающему на Linux, без необходимости загромождать мою службу кодированием, отличным от WCF. Я не хочу смешивать подходы.
Другие ресурсы...
-
Выбор транспорта
В этой статье говорится, что "транспорт WCF TCP оптимизирован для сценарий, где оба конца связь использует WCF ". -
Попытка подключения клиента, отличного от WCF, к службе WCF который использует BasicHttpBinding.
разработчик заканчивает писать собственный код через WebClient (в отличие от TcpClient).
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c2d72c2d-c095-4ae1-b8ae-d15f32a4e0be/ -
WCF и Raw.NET Sockets
В ответе указывается, что бинарная сериализация TCP + или UDP + двоичная может потребоваться сериализация. Там является образцом привязки UDP, поскольку я упомянутых выше.
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/c0520111-c1ca-4ffd-a4e0-ac68e86130ee/ -
Запись пользовательских запросов в простой WCF Услуги
Автор объясняет, как определить формат сообщения, которое необходимо отправить на службу, поэтому что TcpClient или другой не-WCF клиент сокетов может отправлять запись информацию в службу WCF. подразумевается, что вы не попытка соответствовать WCF службы, а скорее вы вынуждаете клиент сокета сделать тяжелый лифтинг. Тем не менее, вы не получаете встроенные преимущества WCF привязки, если вы ожидаете что.
http://blogs.msdn.com/carlosfigueira/archive/2008/01/13/writing-custom-requests-to-simple-wcf-services.aspx