C#多個Windows Service 傳遞給ServiceBase時,只運行其中一個的解決辦法


在之前編寫的一個服務里,ServiceBase[]里只有一個,

    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
			{ 
                        new Service1(),
			};
            ServiceBase.Run(ServicesToRun);
        }
    }

運行是沒問題的,后來加上一個服務,在ServiceBase[]里添加,

    static class Program
    {
        /// <summary>
        /// 應用程序的主入口點。
        /// </summary>
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new Service1(),
                new AutoVoucher(),
            };
            ServiceBase.Run(ServicesToRun);
        }
    }

調試發現只運行之前的Service1,沒有運行后來新加的AutoVoucher,解決辦法是:回到AutoVoucher的視圖,右鍵->添加安裝程序,

然后就可以看到

其中serviceInstaller1是Service1的安裝程序,serviceInstaller2是后來新增的:

修改相關屬性值,搞定! 

PS:千萬不要更改ServiceName的值,否則會出錯“錯誤1083。配置成在該可執行程序中運行的這個服務不能執行該服務”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM