使用Windows服务启动流程

时间:2015-05-26 15:28:05

标签: c# service process

我在VS2012中使用c#编写了一个Windows服务。此Windows服务只是监视进程运行与否的任务管理器中的进程。如果没有运行,那么服务将从" C:\ Program Files(x86)\ Microsoft \ myInstalledApp \ myapp.exe"中获取进程exe文件。当我从VS2012测试代码时,下面的代码工作正常。但是在部署之后,它没有正确地调用该过程。

         while (true)
            {
                logClient = Process.GetProcessesByName("myApp");
                taskManager = Process.GetProcessesByName("taskmgr");

                if (logClient.Length == 0 && taskManager.Length == 1)
                {
                    replaceList.Add("Time", DateTime.Now.ToString());
                    myProcess.StartInfo.FileName = GetPath();
                    myProcess.Start();
                    SendMail(to,cc,subject, body);
                }
                else if (logClient.Length == 0 && taskManager.Length == 0)
                {
                    myProcess.StartInfo.FileName = GetPath();
                    myProcess.Start();
                }
                Thread.Sleep(500);
            }

当我从taskmgr手动结束myApp.exe进程时,它重新启动应用程序,当代码从vs2012运行时,应用程序正常工作。在将服务部署并安装到系统之后,我从taskmgr关闭应用程序,但它不像以前那样被Windows服务撤销。 在taskmgr中,当myapp.exe正常运行时,myapp.exe的用户名是myName,当我结束进程myapp.exe时,用户名更改为System。但是myapplication.exe在此之后无法正常工作。

0 个答案:

没有答案