在C#中启动Windows服务

12 浏览
0 Comments

在C#中启动Windows服务

我想启动一个刚刚安装的Windows服务。

ServiceBase[] ServicesToRun;
if (bool.Parse(System.Configuration.ConfigurationManager.AppSettings["RunService"]))
{
    ServicesToRun = new ServiceBase[] { new IvrService() };
    ServiceBase.Run(ServicesToRun);
}

IvrService的代码如下:

partial class IvrService : ServiceBase
{
    public IvrService()
    {
        InitializeComponent();
        Process myProcess;
        myProcess = System.Diagnostics.Process.GetCurrentProcess();
        string pathname = Path.GetDirectoryName(myProcess.MainModule.FileName);
        //eventLog1.WriteEntry(pathname);
        Directory.SetCurrentDirectory(pathname);
    }
    protected override void OnStart(string[] args)
    {
        string sProcessName = Process.GetCurrentProcess().ProcessName;
        if (Environment.UserInteractive)
        {
            if (sProcessName.ToLower() != "services.exe")
            {
                // 在交互式会话中。
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new IvrInteractive());
                IvrApplication.Start(); // 服务的关键函数,在此处启动
                return;
            }
        }
    }

我不确定如何启动该服务。使用ServiceController.Start()吗?但是我已经有了ServiceBase.Run(ServicesToRun)。它是用于启动服务的吗?

对于代码提示,我当然会感激不尽。

0