webform调用windows服务

Posted 听哥哥的话

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:\Windows\Microsoft.NET\Framework\v4.0.30319
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);
        }

 

以上是关于webform调用windows服务的主要内容,如果未能解决你的问题,请参考以下文章

WCF 服务在 WebForm 中调用太快?

记录一次IIS部署webform请求调用python服务的异常处理

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

Asp.net中WebForm 与 MVC的架构区别

.net MVC, webAPI,webForm集成steeltoe+springcloud实现调用服务中心服务的总结

从片段调用 Google Play 游戏服务