代码之家  ›  专栏  ›  技术社区  ›  Behrooz

如何注册winservice?

  •  0
  • Behrooz  · 技术社区  · 16 年前

    如何在c#net中注册windows服务?

    6 回复  |  直到 13 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

    这里( Easiest language to create a windows service )是一组用于在C#中创建Windows服务的分步说明。步骤6-9显示如何准备要在本地计算机上注册的服务。步骤9讨论了如何使用 InstallUtil.exe 安装您的服务。

    要进一步了解,您可以参考此处的分步说明( How to make a .NET Windows Service start right after the installation? InstallUtil.exe . 例如,要安装服务,您可以使用

    MyService.exe /install
    

    MyService.exe /uninstall
    
        3
  •  1
  •   user24359 user24359    16 年前

    要了解服务是否已安装,请获取已安装服务的列表,并查看其中是否包含您的服务:

    bool existsAlready = System.ServiceProcess.ServiceController.GetServices()
      .Where(service => service.ServiceName == yourServiceName)
      .Any();
    

    要实际安装它,您必须创建一个安装程序对象,并告诉它您的可执行文件和服务名称。比如:

    ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller 
    {
      Account = ServiceAccount.LocalService
    };
    string executablePath = String.Format("/assemblypath={0}", "yourprogram.exe"));
    InstallContext context = new InstallContext(null, new[] { executablePath });
    var installer = new ServiceInstaller
    {
     Context = context,
     DisplayName = yourServiceName,
     Description = yourServiceName,
     ServiceName = yourServiceName,
     StartType = ServiceStartMode.Automatic,
     Parent = serviceProcessInstaller,
    };
    installer.Install(new System.Collections.Specialized.ListDictionary());
    

        4
  •  1
  •   VJOY    16 年前
        6
  •  0
  •   EMP    16 年前

    1) 您可以创建一个Windows Installer软件包,以便在生产环境中执行此操作。我相信VisualStudio安装项目可以做到这一点。

    2) 对于开发,installutil.exe应该这样做,如下所示 斯维特洛扎·安吉洛夫

    3) 如果您真的需要以某种方式定制安装,您可以编写自己的.NET代码来完成。看这张照片 System.ServiceProcess.ServiceInstaller

    推荐文章