webform调用windows服务

准备工作:
0.电脑->管理->本地用户和组->组->Administrator双击->隶属->添加Network service->确定
1.启动windows服务Windows Installer
2.创建winform项目  WindowsFormsApplication1
3.添加windows服务 service1
4.添加代码
 protected override void OnStart(string[] args)
        {
            if (args != null && args.Length > 0)
            {
                if (args[0] == "1")
                {
                    string path = $@"d:kxbbbb{DateTime.Now.ToLongDateString()}.txt";
                    File.Create($"{path}");
                }
                else if (args[0] == "2")
                {
                    string path = $@"d:kxqqq{DateTime.Now.ToLongDateString()}.txt";
                    File.Create($"{path}");

                }
            }

            // TODO: 在此处添加代码以启动服务。
        }
5.Main函数启动
/// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            //Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            ServiceBase[] serviceRun;
            serviceRun = new ServiceBase[] { new Service1() };
            ServiceBase.Run(serviceRun);
        }


6.service1.cs右键查看设计器,再右键添加安装程序,默认添加两个
serviceInstaller1和serviceProcessInstaller1
7.serviceInstaller1右键属性修改Description 为这是一个测试服务
8.serviceProcessInstaller1右键属性 Account修改为NetworkService
9.管理员打开cmd
cd C:WindowsMicrosoft.NETFramework(64)v4.0.30319 把InstallUtil.exe复制到要发布的EXE的debug目录里面,命令切换等到该DEBUG目录
10.安装服务
InstallUtil.exe WindowsFormsApplication1.exe
11.webform调用
 protected void Page_Load(object sender, EventArgs e)
        {
            ServiceController service = new ServiceController("Service1");
            //if (service.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
            //{
            //    service.Start();//打开服务 
            //}
            //停止服务
            service.Stop();//这行报错:无法打开计算机“.”上的 Service1 服务。
            service.WaitForStatus(ServiceControllerStatus.Stopped);
            //启动服务
            string[] args = { "2" };
            service.Start(args);
            service.WaitForStatus(ServiceControllerStatus.Running);
        }
原文地址:https://www.cnblogs.com/kexb/p/6722527.html