[英]Can I run multiple instances of 'the same' Windows Store Application at once?
[英]Multiple Instances of same Application as a Windows Service?
我有一個應用程序來管理我的項目的繁重處理,並需要將其轉換為“Windows服務”。 我需要允許運行應用程序處理的多個
版本
實例,這似乎是一個相當正常的要求。
我可以看到至少三種方法來做到這一點:
我的意圖是方法#1,但我一直在設計和特別是服務文檔的限制上絆倒:
所以,問題:
注意:我通過使用方法#3來解決這個問題,所以我無法證明這一點。 但我認為有人可能有關於如何實施#1的信息 - 或者很好的理由為什么它不是一個好主意。
[編輯]我最初有一個第四個選項( 在硬盤上安裝應用程序的多個副本 ),但我刪除它,因為它只是感覺,嗯,hackish。 這就是我說“ 至少有三種方法 ”的原因。
但是,除非重新編譯應用程序,否則它必須動態設置其ServiceName,因此它具有上述第三個項目符號/問題的解決方案。 因此,除非需要更改其安裝文件的實例,否則#1應該可以正常使用目錄中的N個配置文件和指示實例應該使用的注冊表項。
雖然我無法回答您對選項#1的具體問題,但我可以告訴您選項#2對我們來說非常有效。 我們希望為每個“子”服務創建一個應用程序域,以便在每個“子”服務下運行並為每個子服務使用不同的配置文件。 在我們的服務配置文件中,我們存儲了要啟動的應用程序域以及要使用的配置文件。 因此,對於每個條目,我們只需創建應用程序域,設置配置文件等,然后關閉。 這種配置分離使我們能夠輕松地為每個實例唯一地指定端口和日志文件位置。 我們的另一個好處是我們將“子服務”編寫為命令行exe,並在每個“子”服務的新線程上簡單地調用AppDomain的ExecuteAssembly()。 解決方案中唯一的“笨拙”是關閉,我們沒有打算為它創建一個“好”的解決方案。
2012年2月更新
前段時間我們開始使用“命名”服務(如SQL Server)。 我在博客的“構建Windows服務 - 第1 部分到第7部分 ”系列中詳細介紹了整個過程。 它們將指導您完成自行安裝的命令行/ Windows服務混合。 滿足以下目標:
構建Windows服務 - 第7部分:完成觸摸系列的最后一篇文章中提供了完整的Visual Studio項目模板。
看看這個: 多實例.NET Windows服務
有一個選項#4,我在我的項目中成功使用了“命名實例”。
您應用的每次安裝都有自定義名稱,每個安裝都有自己的服務。 它們是完全獨立的並且彼此隔離。 如果您嘗試在單台計算機上多次安裝它,MS SQL Server將使用此模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.