WCF и клиентское общение на собственной службе WCF

Я новичок в услугах WCF. Я работаю с WCF уже более двух месяцев и люблю его возможности. Я использую самостоятельно размещенный WCF в службе Windows. Привязка является netTCP, потому что клиент и служба находятся на одной машине. Мое общение дуплексное, и я использую сеанс WCF. Благодаря этим функциям одна из потребностей разработки для моего приложения заключается в том, что пользовательский интерфейс всегда должен быть подключен к службе. Я использую отдельный поток в своем пользовательском интерфейсе, чтобы всегда опрашивать состояние подключения, а также заново создавать и открывать канал в случае его появления. к ошибочному состоянию. Поскольку у меня есть асинхронные обратные вызовы от службы, клиент всегда должен быть подключен. Вот пара вопросов:

  1. Можно ли использовать технику собственного хоста, зная, что клиент и сервис находятся на одной машине? Я использовал WCF для простоты взаимодействия между процессами.

  2. Имеет ли смысл сохранять эту ветку активности от клиента или я должен использовать какую-то другую технику?

Я хочу стать лучше в использовании и настройке WCF. Есть ли хорошая книга или онлайн-материал для чтения о собственных услугах WCF?

Пожалуйста посоветуй.

Спасибо,

Subbu

1 ответ

Решение

Я думаю, что это абсолютно нормально, чтобы использовать хостинг с WCF. Например, я реализовал много сервисов, которые размещены в Windows Service. Я предполагаю, что вы говорите о том, что клиент и сервер размещены в разных процессах на одном компьютере? Если это так, то в идеале вы должны использовать двоичные над именованными каналами в ваших привязках.

Если клиент и сервер физически находятся в одном и том же процессе, вы можете использовать что-то вроде Null Transport Романа Кисса, чтобы уменьшить издержки сериализации. Его статью CodeProject можно найти здесь: http://www.codeproject.com/KB/WCF/NullTransportForWCF.aspx

Чтобы ответить на пункт 2, я предложил альтернативный подход в своем ответе на другой вопрос Stackover: сервер WCF net.tcp отключается - как правильно работать на стороне клиента?

Надеюсь это поможет.

Другие вопросы по тегам