Позвольте мне не согласиться. Просто основываясь на том, что вы описали, использование MSMQ для связи между «целевой» службой WCF и хостинговой службой Windows кажется мне чрезвычайно тяжелым. MSMQ позволяет различным процессам взаимодействовать безотказно. В вашем случае служба WCF размещается в том же процессе, что и служба Windows. Таким образом, хотя MSMQ как механизм связи между ними будет работать, в этом нет необходимости.
Кроме того, использование привязки MSMQ между «целевой» службой WCF и «исходной» службой WCF имеет смысл , если , то две службы WCF не всегда работают одновременно , Например, если «целевая» служба WCF не всегда работает, привязка MSMQ позволит «исходной» службе WCF по-прежнему отправлять задачи. Эти задачи будут сохранены в MSMQ для извлечения при запуске «целевой» службы WCF. Однако, похоже, что обе службы будут работать, поэтому я не вижу необходимости в привязке MSMQ.
Для выбора привязок WCF см. Этот пост SO.
C # - WCF - межпроцессное взаимодействие
Позвольте мне затронуть еще одну вещь. Когда ваша «целевая» служба WCF получает запрос задачи от «источника», простое сообщение задачи обратно службе Windows не будет ничего делать само по себе. Да, служба Windows работает, но у нее нет потока выполнения, который вы можете использовать. Дело в том, что для того, чтобы сделать обработку задачи асинхронной, вам нужно запустить поток для управления задачей (ями). Я бы предложил использовать для этого ThreadPool
.
Надеюсь, это поможет.