WCF и клиентское общение на собственной службе WCF - PullRequest
1 голос
/ 21 апреля 2010

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

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

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

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

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

Спасибо,

Subbu

1 Ответ

2 голосов
/ 21 июня 2010

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

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

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

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

...