2013-01-23 80 views
2

我已經實現了一個windows服務。 我該如何運行服務的多個實例,每個實例都在它自己的AppDomain中?如何在不同的AppDomain中運行多個服務實例?

+1

你將如何運行一個服務的多個實例開始?據我所知,所有服務都是單個實例。如果你想要一個單獨的實例,我認爲你需要創建一個全新的服務,在這種情況下,它將獲得自己的域名。請記住,您可以創建多個運行相同可執行文件的服務(例如MS SQL Server) – Pete

+0

查看Windows進程激活服務(http://www.iis.net/learn/manage/provisioning-and-managing- IIS /特徵的最 - 窗口過程激活服務-是)。如果它不適合您查看與.NET Framework集成的COM +並提供對象池功能。 –

回答

0

Windows服務必須先註冊才能作爲服務運行,因此假設您有固定數量的實例要運行,請在安裝服務進程時爲每個服務註冊唯一的名稱,然後在啓動代碼中註冊,簡單實例每一個通過ServiceBase.Run

例如:

  var service1= new MultiService("name1"); 
      var service2 = new MultiService("name2"); 

      ServiceBase.Run(new ServiceBase[] { service1, service2 }); 

ServiceBase.Run自動旋轉起來在它自己的應用程序域的每個服務。

相關問題