【问题标题】:Make Windows Service run a specific file使 Windows 服务运行特定文件
【发布时间】:2014-01-05 09:24:09
【问题描述】:

我一直在看一些关于如何创建 C# Windows 服务的教程;一切都很好,但没有人说如何让服务运行,在安装结束时,安装文件夹中的一个特定文件(在我的情况下是 hidden.vbs)(我的应用程序有 2 个项目:服务本身和设置)。 安装安装后,服务启动 PROJECT_NAME.exe 和 PROJECT_NAME.svhost.exe

如果您需要任何其他代码来帮助我,请告诉我... 这是我的 Program.cs

using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.ServiceProcess;


namespace PROJECT_NAME
{
    [RunInstaller(true)]
    public partial class ProjectInstaller : System.Configuration.Install.Installer
    {
        public ProjectInstaller()
        {
            InitializeComponent();
        }

        private void serviceInstaller1_AfterInstall(object sender, InstallEventArgs e)
        {
            new ServiceController(serviceInstaller1.ServiceName).Start();
        }
    }
}

Service1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;

namespace PROJECT_NAME
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
        }

        public void OnDebug()
        {
            OnStart(null);
        }

        protected override void OnStart(string[] args)
        {
            System.IO.File.Create(AppDomain.CurrentDomain.BaseDirectory + "OnStart.txt");
        }

        protected override void OnStop()
        {
            System.IO.File.Create(AppDomain.CurrentDomain.BaseDirectory + "OnStart.txt");
        }
    }
}

另外,这是我的解决方案资源管理器http://i.imgur.com/wbqUGOc.png 的照片;请告诉我应该如何或在哪里导入需要服务运行的文件。

这是我第一次接触 C#,我现在不想理解它,但我要做这个服务,因为我的工作中会需要它..

【问题讨论】:

    标签: c# windows service windows-services installation


    【解决方案1】:

    您的脚本可以执行以下操作之一来启动服务:

    • 发出net start 控制台命令以启动服务(例如net start "My Service Name"

    【讨论】:

    • 我想我还不够清楚...由于我调用了一个事件 (AfterInstall),该服务会自动启动。问题是服务启动的应用程序,即PROJECT_NAME.exe和PROJECT_NAME.svhost.exe。如果无法更改(我不这么认为),至少告诉我在哪里编辑 PROJECT_NAME.exe,这样它至少会包含我想要启动的 hidden.vbs。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多