2016-12-07 45 views
0

有用c#编写的windows服务。我喜欢在同一台机器上运行Powershell脚本,并且能够在这个Windows服务和PS脚本之间交换信息。所以我想知道什么是最好,简单,简单和有效的方法? WCF?Powershell脚本和Windows服务之间进行通信的最佳方式是什么?

+0

您手动运行PS脚本,或Windows服务执行该脚本? –

+0

这取决于;给我们更多的背景。 –

+0

命名管道是许多其他选项之一。 –

回答

0

从技术上讲,如果两个相互通信的进程在同一台机器上运行,我会考虑使用命名管道进行通信。

+0

哦,错过了提出命名管道的意见:) –

2

我提出以下几个方面,我使用的:

  1. 文件系统
    我使用的文件系统的情况下,如果我需要做简单的读/写操作。通常我写了一些文件。然后从时间追加到文件时间。这种方法最大的问题是锁定机制。
  2. 剪贴板
    这主要是拟合情况下,如果我需要发送的信息的一些小块到剪贴板,并定期间隔窗口服务中读取它。文本的大段文字工作得很慢,但文本的一小部分都很好。在剪贴板的负面方面是与干扰用户将某些内容复制到剪贴板有关的问题。为了解决这个问题我用分离帐户服务
  3. WCF
    主要我用这个选项的分布式系统。就个人而言,如果PS和Windows服务在同一台机器上运行,我不会看到它的好处。但是,如果在同一台机器上同时拥有这两者,没有任何问题。
  4. 套接字
    我喜欢这个选项的情况下,如果我需要快速地通过内存传递信息快。
  5. Windows事件日志(丑陋的想法,但对于某些情况下非常有用)。
    通常,这适用于通知有关错误或某些信息活动。
  6. 数据库(有些时候它也可行)
    如果传递的信息有很多格式化,复杂的阅读规则,那么我更喜欢制作一些类,它们可以被PS重用为.Net对象,并且可以读/写/在Windows服务中修改它们。
+0

我一直在寻找WCF。你能否添加更多关于你使用的通讯类型的细节? – MichaelSo

+0

我已经扩展更多我的回答有点 –

相关问题