C#控制台应用程序转换为windows服务

通常在开发过程中,会遇到控制台程序需要转换为Windows服务的情况。这个时候我们只需要在控制台程序中添加Windows服务文件并进行配置,即可在服务器中进行安装,让控制台程序以服务的形式跑起来。

1、在控制台项目中新增一个Windows服务文件,我这里命名为OrderSync.cs。

C#控制台应用程序转换为windows服务_第1张图片

2、 查看新增的Windows服务代码,将服务名称设置为自己需要的名称。

    partial class OrderSync : ServiceBase
    {
        public OrderSync()
        {
            InitializeComponent();
            base.ServiceName = "OrderSync";
        }

        protected override void OnStart(string[] args)
        {
            // TODO:  在此处添加代码以启动服务。
        }

        protected override void OnStop()
        {
            // TODO:  在此处添加代码以执行停止服务所需的关闭操作。
        }
    }

3、双击打开新增的Windows服务cs文件,右键点击添加安装程序。

C#控制台应用程序转换为windows服务_第2张图片

4、配置安装程序。

双击安装成功的安装程序ProjectInstaller.cs,会看到serviceProcessInstaller1和serviceInstaller1:

C#控制台应用程序转换为windows服务_第3张图片

 鼠标左键选中serviceProcessInstaller1,在右下角的属性中进行如下配置:

C#控制台应用程序转换为windows服务_第4张图片

 鼠标左键选中serviceInstaller1,在右下角的属性中进行如下配置:

C#控制台应用程序转换为windows服务_第5张图片

 5、修改控制台程序入口。

将控制台入口Program.cs改为如下:

    class Program
    {
        static void Main(string[] args)
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
			{ 
				new OrderSync() //这里的OrderSync新增的Windows服务
			};
            ServiceBase.Run(ServicesToRun);
        }
    }

6、Windows服务安装。

重新编译生成控制台程序之后,需要在编译后的文件夹中增加三个文件

1、微软安装程序工具 (Installutil.exe),只要你电脑安装了Visual Studio,这个文件就可以在C:\Windows\Microsoft.NET\Framework\v2.0.50727(或者C:\Windows\Microsoft.NET\Framework\v4.0.30319)中找到

C#控制台应用程序转换为windows服务_第6张图片

将 Installutil.exe文件Copy到编译完的控制台应用程序中!

2、安装执行文件和卸载执行文件bat:

 setup.bat文件中编辑如下内容,OrderSyncService.exe请更名为你项目的执行文件名称:

installutil OrderSyncService.exe

unsetup.bat文件中编辑如下内容,OrderSyncService.exe请更名为你项目的执行文件名称:

installutil OrderSyncService.exe /u

3、保存成功之后点击setup.bat,微软安装程序工具 (Installutil.exe)会自动安装OrderSyncService.exe服务。现在服务就已经开始运行了。

4、如果要卸载服务,点击unsetup.bat即可。

你可能感兴趣的:(C#,C#)