`
tcspecial
  • 浏览: 911895 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

C# 开发windows服务

    博客分类:
  • C#
阅读更多

 windows下无法像linux那样直接运行nohup等命令运行后台程序,只能调用相应api做成服务。服务可以在没有任何用户登录计算机的情况下运行。C# 建立windows 服务比较方便,直接派生 System.ServiceProcess.ServiceBase,但是只支持windows XP。

  

/// <summary>
/// 1.建立windows服务类,派生于ServoceBase
/// <summary>
partial class MainService : ServiceBase
{
	/** 
	 * 服务启动时调用,此时代码要立即返回。否则服务启动时一直等待,
	 * 造成服务启动失败。最好启动线程或定时器。
	 *
	 */
	protected override void OnStart(string[] args)
	{
	    File.WriteAllText(@"d:\log.log","Start service");
	}

	// 服务停止时调用
	protected override void OnStop()
	{
	    File.WriteAllText(@"d:\log.log","Stop service");
	}
}


/// <summary>
/// 2.启动服务
/// </summary>
static void Main(string[] args)
{
	// 服务列表
    ServiceBase[] ServiceToRun = new ServiceBase[]
    {
        new MainService(),
    };

    ServiceBase.Run(ServiceToRun);		// 可以同时启动多个服务
}


/// <summary>
/// 3.安装服务,设置RunInstallerAttribute 
/// </summary>
[RunInstallerAttribute(true)]
public partial class ProjectInstaller : System.Configuration.Install.Installer
{
    public ProjectInstaller()
    {
        InitializeComponent();
    }

    private void serviceProcessInstaller1_AfterInstall(object sender, InstallEventArgs e)
    {

    }
}
 

 

上述方式,需要运行 InstallUtil.exe /i 程序.exe 安装服务

 卸载服务: InstallUtil.exe /u 程序.exe,服务管理不太方便,可通过直接调用sc命令实现自动管理服务。

 

/// 命令行自动安装卸载服务
static void Main(string[] args)
{
    // 自动安装卸载服务
    if (args.Length > 0 && args[0] == "d")
    {
        ServiceBase[] ServiceToRun = new ServiceBase[]
        {
            new MainService(),
        };

        ServiceBase.Run(ServiceToRun);
    }
    else
    {
        Console.WriteLine("Usage:[1]install [2]uninstall [3]exit");
        var rs = int.Parse(Console.ReadLine());

        switch(rs)
        {
            case 1:
                var path = Process.GetCurrentProcess().MainModule.FileName + " d";
                Process.Start("sc", "create whitesynserver binpath= \"" + path + "\" displayName= 白名单同步服务 start= auto");
                Console.WriteLine("安装成功");
                Console.Read();
                break;
            case 2:
                Process.Start("sc", "delete whitesynserver");
                Console.WriteLine("卸载成功");
                Console.Read();
                break;
            case 3:
                break;
            default:
                break;
        }
    }
}

 

 

 

 

分享到:
评论

相关推荐

    C# 开发 windows 服务

    本文将深入探讨C#开发Windows服务的知识点。 首先,了解Windows服务的基本概念是必要的。Windows服务是系统级别的进程,它们可以独立于用户会话运行,不受用户登录或注销的影响。服务通常用于执行长时间运行的任务...

    C# 开发Windows服务详解

    2. **C#开发Windows服务** - **ServiceBase类**:C#中的System.ServiceProcess命名空间提供了ServiceBase类,它是创建Windows服务的基础。 - **OnStart()和OnStop()方法**:覆盖这些方法来定义服务启动和停止时的...

    C# 开发windows服务实例

    总结来说,这个"C# 开发Windows服务实例"涵盖了以下知识点: 1. C#编程基础和.NET Framework环境。 2. 使用System.ServiceProcess命名空间创建Windows服务。 3. 重写ServiceBase的OnStart和OnStop方法来定义服务行为...

    C#开发Windows服务DEMO

    本教程“C#开发Windows服务DEMO”将引导你通过实践理解如何利用C#创建和管理Windows服务。 首先,Windows服务是一种在后台运行的独立程序,它们不依赖用户交互,通常用于执行计划任务、监控系统状态或提供特定功能...

    win7下用c#开发windows服务

    在Windows 7操作系统环境下,使用C#开发Windows服务是一个常见的任务,这主要涉及到.NET Framework的System.ServiceProcess命名空间。Windows服务是一种特殊的后台应用程序,它不依赖于用户界面,而是按照预设的时间...

    C#开发windows服务—示例介绍

    C#开发windows服务—示例介绍是关于介绍利用C#开发出一个简单服务的示例及介绍。

    c#开发windows服务

    详细介绍使用C#开发Windos服务,和如何配置服务在桌面上显示信息,0分提供给分数不多的同行们。

    用C#开发Windows服务、自动安装注册(转).doc

    在本文中,我们将使用 C# 语言开发一个简单的 Windows 服务,并实现自动安装注册。 二、创建 Windows 服务 要创建一个 Windows 服务,我们需要首先打开 Visual Studio 并选择 Visual C# 项目模板,然后选择 ...

    C# windows服务实例(C#发现之旅 --- C#开发Windows Service程序)

    总之,掌握C#开发Windows服务是一项实用的技能,特别是在需要长时间后台运行的任务或需要跨用户会话操作的场景下。通过这个实例,开发者可以深入学习服务的生命周期、安装过程、调试技巧,并了解如何将这些知识应用...

    C#开发windows系统服务、及安装源码

    总结来说,C#开发Windows服务是一项关键技能,尤其对于那些需要在系统后台持续运行任务的应用场景。通过理解`ServiceBase`类和安装过程,开发者可以创建高效、可靠的系统服务,并利用.NET Framework的强大功能来管理...

    C#开发windows服务实现自动从FTP服务器下载文件

    "C#开发windows服务实现自动从FTP服务器下载文件" 本文主要介绍了使用C#开发Windows服务实现自动从FTP服务器下载文件的方法。该服务使用Timer来设置定点下载文件,并使用FileSystemWatcher来监控下载文件的变化。 ...

    C# Windows测试服务源码

    这个项目为学习C#开发Windows服务提供了一个实用的实例,有助于理解服务生命周期、服务之间的交互以及如何在实际项目中应用这些知识。对于想要扩展系统功能或自动化任务的开发者来说,这是一个很好的起点。

    C#编程基础知识及Windows服务应用程序开发教程

    内容概要:本文档详细介绍了C#的基本语法和高级编程技术,以及如何使用C#开发Windows服务应用程序。主要内容包括:C#编程基础、变量与数据类型、控制结构与循环、面向对象编程基础、类与对象的创建、继承与多态性、...

    C#开发Windows服务实例之实现禁止QQ运行

    1、C#开发windows服务 2、禁止QQ等程序运行 3、为windows服务创建自动安装程序 下面针对这三个基本功能进行实现 一、C#开发windows服务 Windows服务在VS以前的版本中叫NT服务,在VS.NET启用了新的名称。用C#创建...

    C#创建Windows服务(Windows Services) 实战之系统定时重启服务-程序开发

    ### C# 创建 Windows 服务:实现系统定时重启功能 在 IT 领域,Windows 服务(Windows Services)是后台运行的应用程序,它们为用户提供了一系列关键功能,如网络连接、打印服务等。与传统的应用程序不同,Windows ...

    C# Windows服务,实现代码,含详细注释及使用播客

    以上就是使用C#开发Windows服务的基本步骤。在实际应用中,服务可能会连接数据库、监听端口、处理定时任务等,这需要根据具体需求来扩展服务的`OnStart`和`OnStop`方法。而`ListenServiceUI`和`ListenTest`项目则...

    C# 开机启动服务(windows service)

    本程序用ASP.NET C#开发,不针对系统版本限制。 本源码拿就来可以直接写您想要的服务,无需再改其它的代码,拿来主义是不是很好?例如订单服务。 本服务是100%源码,源码中包含: 1、启动服务.bat 2、停止服务.bat 3...

    C#开发WindowsService程序源码加文档.pdf

    C#是微软推出的面向对象的编程语言,它在.NET框架的支持下,提供了丰富的类库和工具,使得开发Windows服务变得相对简单。开发者可以利用System.ServiceProcess命名空间中的类来创建、控制和交互Windows服务。 1. **...

    使用C#创建Windows服务 并发布Windows 服务.docx

    这些配置共同构成了一个适合于开发Windows服务的基础环境。 #### 二、创建Windows服务 创建Windows服务的过程主要分为以下几个步骤: 1. **新建项目**:首先,在Visual Studio中新建一个Windows Service项目,并...

Global site tag (gtag.js) - Google Analytics