c# windows service 通过bat文件来安装和卸载自己写的服务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# windows service 通过bat文件来安装和卸载自己写的服务相关的知识,希望对你有一定的参考价值。

如何、何时生成bat文件,安装包中怎样调用这个bat文件

安装:程序名 + /install 或程序名 + /service
启动:net start + 服务名 或 sc start +服务名
停止:net stop + 服务名 或 sc stop +服务名
卸载:sc delete +服务名 或 程序名+ /uninstall
例:对C盘根目录下的AA.exe(服务名:AA)进行操作的BAT如下:
C:\\aa /install
sc start aa
sc stop aa
c:\\aa /uninstall
参考技术A @ECHO OFF
echo 准备安装服务
pause
REM The following directory is for .NET 4.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v4.0.30319
set PATH=%PATH%;%DOTNETFX2%
echo 安装服务...
echo ---------------------------------------------------
InstallUtil /i Service.exe (这次是你的服务)
echo ---------------------------------------------------
echo 安装服务成功!
pause
==========================================
看上面的就Ok,我们现在用的就是这个额,服务生成之后直接运行这个bat就好了本回答被提问者和网友采纳

c# topshelf 编写windows service

使用topself写windows service

1. 在console程序的program.cs main函数中注册服务信息(安装服务时会调用)

...
static void Main(string[] args)
        
            log4net.Config.XmlConfigurator.Configure();

            log.Info("Main entry point");
            try
            
                var serviceName = ConfigurationManager.AppSettings["ServiceName"];
                var serviceDisplayName = ConfigurationManager.AppSettings["ServiceDisplayName"];
                var serviceDescription = ConfigurationManager.AppSettings["ServiceDescription"];

                var serviceRunner = HostFactory.Run(config =>
                
                    config.Service<YourService>(service =>
                    
                        service.ConstructUsing(name => new YourService());
                        service.WhenStarted(serviceConfig => serviceConfig.Start());
                        service.WhenStopped(serviceConfig => serviceConfig.Stop());
                    );
                    config.RunAsLocalSystem();

                    config.SetServiceName(serviceName);
                    config.SetDisplayName(serviceDisplayName);
                    config.SetDescription(serviceDescription);
                );

                var exitCode = (int)Convert.ChangeType(serviceRunner, serviceRunner.GetTypeCode());
                Environment.ExitCode = exitCode;


                log.Info("Main end point");


                //StartConnect();
            
            catch (Exception e)
            
                log.Error("Exception in main", e);
            


        
        
...


2. 在YourService.cs:暴露start和stop方法即可。

public class YourService
    public void Start()
        ...
    public void Stop
        ...

 

以上是关于c# windows service 通过bat文件来安装和卸载自己写的服务的主要内容,如果未能解决你的问题,请参考以下文章

[windows service]C# 创建Windows Service(Windows服务)程序

使用 Amazon Web Services (EC2) 和 c# Windows Service/WCF 进行远程调试

C#创建Windows Service(Windows 服务)基础教程

windows使用.bat文件批量执行任务

C#创建Windows Service(Windows 服务)基础教程

c# topshelf 编写windows service