2013-08-05 6 views
0

У нас есть клиентское серверное приложение. Мое приложение необходимо изменить для работы через службу WCF, чтобы получать/отправлять данные в базу данных (требования безопасности).Служба Windows и Hosted Service WCF

Мне также нужна другая услуга, которая будет размещаться на стороне клиента и будет подключать клиента к службе WCF на стороне сервера. Соедините с Https. Служба WCF на сервере находится в PerSession режим. Большая часть моей работы с сервером - вставка/выбор запросов.

Так что мой дизайн:

Client -> окна службы -> Служба WCF сервера (iis7) -> базы данных.

Эта служба Windows действует как клиент и сервер одновременно. Действовать как сервер: для клиентского приложения. Действовать как клиент для службы WCF, который находится на сервере.

Приложение должно поддерживать XP и вперед операционных систем с .net 4.

Служба окна необходимо подключить услугу WCF только на спрос (когда клиентское приложение запускается).

Мне нужно решить, каким образом реализовать клиентскую службу Windows. Я предпочитаю реализовывать его с помощью WCF-сервиса с TCP/IP, но для этого он чувствует себя более убитым. Должен ли я использовать другие реализации IPC? И если да, то какой?

Итак, что является лучшим способом реализации этой службы Windows?

Благодаря

ответ

1

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

Итак, для межпроцессного общения я бы использовал NetNamedPipeBinding. Вы можете найти более подробную информацию о том, как определить, какая привязка используется для использования here.

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

[Изменено]

Я просто перечитать проводку, и я хотел бы разъяснить некоторые подробности о хостинге. Вы можете разместить службу WCF в службе Windows, которая объясняется here, но не наоборот. Извините, если я неправильно понял ваш вопрос. И да, TCP/IP для взаимодействия между процессами определенно является излишним, но NetNamedPipeBinding использует общую память согласно статье this, поэтому это должен быть самый быстрый способ.