Как бы вы связали службу wcf со службой Windows? - PullRequest
2 голосов
/ 02 марта 2009

Две недели назад мне нужен был способ связи службы wcf с службой windows, работающей на том же компьютере. Служба windows должна была получать данные из внешнего источника и делиться ими со службой wcf (размещенной в IIS), которая должна была предоставить ее, когда клиент сделал запрос. Я решил сделать это с IPC.

Я сделал это, и теперь служба windows является сервером ipc, а служба wcf - клиентом ipc. Это идет хорошо, но я думаю, что сделал ошибку, потому что для правильной работы служба Windows должна выполняться с учетной записью ASPNET, для этого должна быть назначена учетная запись пароля ASPNET, и когда я это делаю, IIS работает неправильно .

Я думаю о разных альтернативах, но во всех из них проблема сохраняется. Некоторые идеи?


Edit:

Мне нужна была система, которая обнародовала в веб-службе, размещенной в IIS, данные, полученные через telnet из другой старой системы, что немного нестабильно. Поскольку реакция этой второй системы была медленной, я решил поместить процесс (службу Windows) между веб-службой и старой системой. Служба windows должна была сохранить данные, собранные со старой системы, и когда служба wcf попросила ее, сразу же передала их через ipc.

Ответы [ 3 ]

1 голос
/ 03 марта 2009

Почему служба Windows должна работать как пользователь ASPNET? Это потому, что вы используете соединение IPC, которое требует аутентификации от абонента?

Другой альтернативой (если у вас есть контроль над кодом службы Windows) будет сделать эту службу также WCF (используя ServiceHost в службе Windows). Служба IIS может подключаться к службе Windows, используя привязку NetTcp или NetNamedPipe, если вам нужна производительность, подобная IPC.

0 голосов
/ 03 марта 2009

В идеале служба windows должна работать как служба WCF, чтобы клиенту было легко с ней общаться.

Следующий вопрос заключается в том, должен ли «клиент» быть сервисом WCF. Если этот клиент должен обслуживать другие приложения, тогда это уместно, в противном случае это может быть не обязательно. Я не знаю достаточно о вашей системе, поэтому вам решать, что лучше!

0 голосов
/ 02 марта 2009

Почему бы просто не создать другую учетную запись с тем же набором разрешений пользователя ASPNET, под которым работает и служба WCF, и другая ваша служба? Таким образом, вы можете контролировать пароль.

...