Я вижу, что вы (или кто-то другой) проголосовали за ответ Себастьяна Седлака, потому что он упомянул о размещении службы WCF в службе Windows. Ваш ответ был
It's in nice bold lettering in the question. Not a Web Service, therefor WCF is out of the question
Я думаю, вы не поняли, что он имел в виду. Он не говорил о веб-сервисе . Он говорил о размещении службы WCF в вашей службе Windows .
Это далеко не одно и то же. Вы можете разместить службу WCF в любого приложения Windows (Forms / Console / Service). Смысл этого в том, что приложение затем становится доступным для связи через его внутреннюю службу WCF, таким же образом fashion , как вы можете общаться с веб-службой (вы можете * 1022). * также размещает службы WCF в IIS, кстати, что , а затем делает их "веб-службами" (в том смысле, в каком вы, похоже, имеете в виду).
В службе Windows это означает, что вы можете отправлять ей любую команду, а также получать от нее любую информацию, которая вам нужна - во время ее работы.
Фактически, я сейчас работаю над проектом, который является службой Windows, с которой мне нужно иметь возможность связываться и передавать команды - и получать информацию - во время выполнения. Например, я хочу быть в состоянии сказать ему, где хранить определенные вещи, что регистрировать, сбросить / перезапустить - и опросить его на наличие сообщений о состоянии. Я делаю это, размещая Службу WCF внутри Службы Windows. Эта служба WCF предоставляет набор методов, которые в моем случае включают получение команд и возврат информации о состоянии. Поэтому, когда Служба Windows работает, я могу связаться с ней (даже удаленно) через встроенную Службу WCF и сообщить ей, что делать.
Это чрезвычайно простая вещь для реализации, и в случае со Службами Windows, она может предоставить вам гораздо более богатый интерфейс для Службы, чем с помощью основных стандартных команд.
Однако , вы указали, что хотите, чтобы служба Windows получала настройки своей папки каждый раз, когда она запускает , что делает такую пассивную настройку менее чем идеальной (поскольку она не сможет это сделать ничего, пока вы не передадите ему нужные папки).
Один из способов справиться с этим (с использованием размещенной службы WCF) - это постоянно запускать службу Windows (то есть автоматический запуск). Его состояние по умолчанию будет бездействующим. Затем вы можете выполнить команду «начать обработку», передавая нужные папки для работы (посредством вызова соответствующего метода службы WCF). Аналогично, служба WCF будет предоставлять методы, предоставляющие вам статус приложения (текущая папка, ход выполнения, занято / неактивно и т. Д.). Как только обработка будет завершена, она вернется в состояние ожидания, ожидая получения следующего набора папок.
Делая это таким образом, вы сможете очень легко управлять удаленно - вы даже можете создать для него онлайн-панель администрирования, доступную из любого места.