2016-12-07 44 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

我已經擴展更多我的回答有點 –

相關問題