2016-12-07 4 views
0

Существует служба Windows, написанная на C#. Мне нравится запускать сценарии Powershell на одном компьютере и иметь возможность обмениваться информацией между этой службой Windows и скриптами PS. Так что мне интересно, что это лучший, простой, простой и эффективный способ? WCF?Каков наилучший способ связи между скриптом Powershell и службой Windows?

+0

Вы запускаете сценарии PS вручную, или служба Windows выполняет этот скрипт? –

+0

Это зависит от многого. дайте нам еще один контекст. –

+0

Именованные трубы - один из многих вариантов. –

ответ

0

Технически, если оба взаимосвязанных процесса работают на одном компьютере, я бы рассматривал связь с использованием именованных каналов.

+0

О, пропущенные комментарии, которые предлагают названные каналы :) –

2

Я предлагаю следующие способы, которые я использовал:

  1. Файловая система
    я использую файловую систему в тех случаях, если мне нужно сделать простые операции чтения/записи. Как обычно, я писал что-то для файла. А затем добавляется к файлу времени с момента. Самая большая проблема с этим подходом - механизм блокировки.
  2. Буфер обмена
    Это в основном подходит для случаев, если мне нужно отправить небольшой кусок информации в буфер обмена, и служба Windows с регулярным интервалом прочитала его. Большие фрагменты текста работают медленно, но небольшие фрагменты текста в порядке. Среди негативных аспектов буфера обмена - проблемы, связанные с мешанием пользователю скопировать что-то в буфер обмена. Чтобы исправить это, я использовал отдельный счет для обслуживания
  3. WCF
    В основном я использовал этот вариант для распределенных систем. Лично я не вижу выгоды от этого, если служба PS и windows работает на одном компьютере. Но нет ничего плохого, если бы на одной машине их обоих.
  4. Розетки
    Мне нравится эта опция для случаев, если мне нужно быстро передавать информацию через память быстро.
  5. Журнал событий Windows (уродливая идея, но для некоторых случаев полезно).
    Как обычно, это полезно для уведомления об ошибках или некоторых информационных действиях.
  6. База данных (Некоторое время она также работоспособна)
    Если в передаче информации много форматирования, сложных правил чтения, то я предпочитаю делать некоторые классы, которые могут быть повторно использованы PS в качестве .Net-объектов и чтения/записи/изменить их в службе Windows.
+0

Я смотрю на WCF. Не могли бы вы добавить более подробную информацию о том, какой тип связи вы использовали? – MichaelSo

+0

Я немного расширил свой ответ –