Я бы выбрал WCF.Это самый современный и, вероятно, лучший поддерживаемый подход на данный момент.Он "заменил" старые технологии в большинстве сценариев.Приятной особенностью WCF является то, что если вам нужно перенести свой сервис на другой протокол, вы можете сделать это просто в конфигурации.
Если вы ожидаете, что служба Windows будет всегда работать на той же машине, что и другое приложение, вы можете использовать WCF с netNamedBinding.Если вы решите перенести свою службу на другую машину, вам придется изменить конфигурацию (возможно, на netTcpBinding), поскольку именованные каналы в WCF ограничены только IPC.