如何安装/运行Windows服务

时间:2014-05-06 10:19:51

标签: .net windows c#-4.0 service

我已经在Visual C#2010中编译了一项服务。如果我点击BService.exe它会启动但也会显示一个消息框:"无法从命令行或调试器启动服务。必须安装Windows服务(使用installutil.exe),然后启动ServerExplorer,Windows服务管理工具或NET START命令。"如果我单击确定程序关闭。如果我使用C:\ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ installutil.exe安装,并从services.msc启动它也会启动但不显示MessageBox.Show(" sdas&# 34;),所以不起作用。如何安装/运行服务?

public partial class BService : ServiceBase
{
    private System.Timers.Timer timer;
    public BService()
    {
        timer = new System.Timers.Timer(2000);
        timer.Enabled = true;
        timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
        InitializeComponent();
    }
    public void Start() { timer.Start();}
    public void Stop() { timer.Stop();}
    protected override void OnStart(string[] args) { this.Start();}
    protected override void OnStop() { this.Stop();}

    void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        MessageBox.Show("sdas");
    }
}

2 个答案:

答案 0 :(得分:0)

使用以下代码使用C#安装Windows服务:

public void InstallWinService(string winServicePath)
{
    try
    {
        ManagedInstallerClass.InstallHelper(new string[] { winServicePath});
    }
    catch (Exception)
    {

        throw;
    }
}

使用以下代码使用C#

运行win Server
public void StartService(string serviceName)
{
    ServiceController service = new ServiceController(serviceName);
    try
    {
        service.MachineName = "localhost";
        service.Start();
        service.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 1, 0));
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

答案 1 :(得分:0)

Windows服务不再(从Vista开始)允许向用户显示UI,没有表单,没有MessageBox,没有控制台Windows,没有.Net Framework更新对话......没有。你无法解决这个问题,如果可以的话,微软会对你的方法进行补丁,这样它就不会长时间工作。这是subject的章节和经文。

更改您的代码,以便记录事件并查看事件查看器(请参阅Using EventLog in ClickOnce application)。