любая помощь / обратная связь будут оценены. Я хотел бы разработать службу Windows на C #, чтобы она могла связываться через именованные каналы с веб-службой, написанной на C #. Возможен ли такой подход межпроцессного взаимодействия? Причина использования именованных каналов - это производительность.
Межпроцессное взаимодействие между службой Windows и веб-службой
comment
Когда вы говорите, что веб-сервис, написанный на C #, размещен ли он в IIS, а если нет, то как? Если я вас правильно понимаю, тот факт, что это веб-служба, не имеет значения - важно, какой процесс, в каком контексте безопасности, содержит код, с которым ваша служба Windows должна взаимодействовать через именованный канал.
- person Chris Dickson   schedule 23.02.2012
comment
@ChrisDickson Да, веб-сервис размещен в IIS. Фактически, служба Windows и веб-служба размещаются на одном сервере (сервере Windows). Кроме того, ни одна из служб не имеет контекста безопасности. Итак, мой вопрос: можно ли достичь именованных каналов в этом случае?
- person Carlitos Overflow   schedule 23.02.2012
Ответы (1)
Я бы лично создал службу WCF и использовал netNamedPipe привязка.
Эта ссылка, которую я предоставил, содержит рабочий пример.
Что вам нужно знать, так это то, что из-за усиления защиты Windows 2008 Server (включая Windows 7) службы работают с другим идентификатором сеанса (сеанс 0) и не будут иметь доступа к службам WCF, которые работают в пользовательском режиме.
person
Aliostad
schedule
21.02.2012
спасибо за предложение, однако служба Windows также должна подключаться через TCP к среде, отличной от Windows, поэтому, если я использую WCF, я не смогу использовать протокол TCP
- person Carlitos Overflow; 21.02.2012
Конечно, вы можете использовать TCP. Вы можете разместить его на другом порту для TCP.
- person Aliostad; 23.02.2012
Если я правильно понял из спецификаций msdn, если я использую WCF, я могу использовать только netNamedPipes и netTcp в качестве протоколов связи. это правильно? Если это так, я хотел бы использовать обычный протокол TCP, а не netTcp, поскольку он используется только между машинами Windows.
- person Carlitos Overflow; 23.02.2012
@ user945511 Тогда WCF не для вас. netTcp - это собственный формат TCP, а также netNamedPipes. Но если и клиент, и сервер являются WCF, это работает очень хорошо.
- person Aliostad; 23.02.2012