2011-07-05 72 views
11

我寫使用.net 3.5便攜式服務/守護,我的Windows服務正在運行,但我想知道單端口....NET服務到Linux守護

單服務就是我尋找我是否理解正確。這究竟是如何工作的?我認爲我需要在我的服務中使用單聲道兼容的代碼,對吧?例如,我正在使用SQLite。是否正確,爲了使用單聲道我應該重構我的代碼使用單聲道命名空間等,如Mono.Data.SQLite?我還可以使用Settings.settings嗎?

此外,我讀過守護程序不實現onStart/Stop方法,所以我需要更改我的代碼以在mono/linux下運行?即可以在我的代碼中使用這些方法並確定運行ServiceBase.Run()?單兵服務是否適應這些?

回答

11

您應該從一開始就創建您的程序,以用於Windows和Linux。

您需要Visual Studio with Mono Tools或免費的MonoDevelop-IDE來創建單應用程序。 MonoDevelop可以導入您的Visual Studio項目。這個IDE可以幫助你獲得正確的命名空間。

使用Mono-Service將程序集作爲後臺程序運行。 Linux守護進程正在使用信號與系統進行通信。請閱讀the documentation

我們已經有了類似的問題,所以please read this看看,如何處理Unix信號。

+0

乾杯,非常豐富。你能告訴我,如果通過WCF與GUI進行通信將在單一服務中工作嗎?在這個問題中的答案之一表明IPC在單一服務下是不可能的,情況仍然如此嗎?另外,如果你知道有什麼資源可以學習編寫一個好的初始化腳本,我不知道從哪裏開始,谷歌的例子並不那麼冗長。 – marked