`
terryfeng
  • 浏览: 504036 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

建立一个 C#.Net Windows Service 程序

阅读更多

一、Windows Service 服务,可以在用户未登录的时候开始运行提供服务(下图)

image

二、开始建立一个Windows 服务

1.打开VS2008 新建一个Windows 服务项目

2009-10-01_144618

系统会默认的建立一个

Program.cs 是启动文件,里面有如下代码用来启动服务

static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new Service1() 
            };
            ServiceBase.Run(ServicesToRun);
        }

2.Service1.cs 服务类。继承自System.ServiceProcess.ServiceBase

右键点击此文件,点击“查看代码”,打开类代码视图可以找到几个重载方法

image

OnStart方法来响应启动服务的事件

OnStop方法来响应停止服务的事件

OnPause方法来响应暂停服务的事件

OnContinue方法来响应恢复提供服务的事件

在重载这些方法时必须要立即返回,其中不能出现长时间的操作,若处理时间过长则Windows服务管理器会觉得该Windows服务停止响应而报错。

3.在“设计器视图”右键,会看到一个添加“添加安装程序”,添加一个ProjectInstaller.cs

image

ProjectInstaller.cs  安装服务,继承自System.Configuration.Install.Installer,该类用于配合微软.NET框架自带的安装命令行工具InstallUtil.exe

将此文件的serviceProcessInstaller1->Accout属性,设为:LocalSystem(默认是User)。

 

4.现在要实现点小功能来学习一下Windows 服务,

功能是简单实现:每隔5秒向SQL数据库插入一条数据,然后将SQL语句记录到指定的TXT文件中做日志,

可以将写好的功能组件引用进来使用,如果没有可以简单的新建类库项目,打开默认的Class1.cs文件,写以下几句代码

 

namespace ClassLibrary1
{
    public class Class1
    {
        public static void Test()
        {
            LogService ls = new LogService();
            ls.InitLog("WindowsService", "d:\\log\\");
            ls.WriteLog(" -------------------------------" + DateTime.Now.ToString() + "------------------------------------------");
            try
            {
                using (SqlConnection cn = new SqlConnection("Data Source=192.168.1.20;Initial Catalog=TestWindowsService;User ID=sa;Password=saaaaa"))
                {
                    cn.Open();
                    using (SqlCommand cm = cn.CreateCommand())
                    {
                        cm.CommandType = CommandType.Text;
                        cm.CommandText = "INSERT INTO T_Test (InsertTime) VALUES (@insertTime)";
                        cm.Parameters.AddWithValue("@insertTime", DateTime.Now.ToString());
                        cm.ExecuteNonQuery();
                        ls.WriteLog("操作成功!SQL语句:" + cm.CommandText);
                    }
                }
            }
            catch (Exception ex)
            {
                ls.WriteLog("操作失败:" + ex);
            }
        }
    }
}

将类库项目引用到服务项目中来,添加一个System.Timers下的Timer控件,在Elapsed事件中就可以直接调用

5.手动安装:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe  FilePath\xx.exe

这个FilePath,就是程序文件夹中Debug目录先的  项目名.exe  文件 ,我一直是默认建的,所以这里是WindowsService1.exe

image

安装成功,会在本文的第一个图片位置找到服务名为Service1的服务选项,手动的启动它一下,可以在D:\log下看到日志

 

6.卸载:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe -u FilePath\xx.exe

image

卸载后页面中没有了图片中的服务

7.最后:

可以为Windows 服务添加客户端,也可以在启动程序中编写不使用 InstallUtil.exe  的安装,这些都可以在完成功能的时候加上,方法网上可以找到。

调试服务可以使用附加进程的方式,也可以直接将功能组件开发好调用或者是设置调试线程等方法进行调试,也可以建立测试调试。

8.实例代码下载:WindowsService1.rar

分享到:
评论

相关推荐

    C#.net实现多服务器备份文件同步service windows服务实现

    1、A为主文件服务器; B、C、D为待分发服务器 ...3、在B、C、D上建立FTP服务器 4、在程序中设置各FPT路径及登录口令 5、在程序中设置监测A的文件类型 6、Bin中安装bat进行 系统服务 安装,对应卸载操作;

    C#.net_经典编程例子400个

    273 实例191 判断文件是否正在被使用 274 实例192 在程序中调用.HLP文件 275 实例193 C#中实现文件拖放 276 实例194 文件比较 276 第7章 操作系统与Windows相关程序 279 7.1 启动相关...

    C#创建windows服务/写wvebServer 接口

    本文将深入探讨如何使用C#来创建Windows服务,并构建一个Web服务器接口。这些技术对于系统集成、后台处理以及网络通信至关重要。 首先,让我们了解Windows服务。Windows服务是在操作系统后台运行的独立程序,它们不...

    学生学籍管理系统 C# .Net

    本文将深入探讨基于C# .Net平台的学生学籍管理系统的设计与实现,帮助开发者了解如何构建一个高效、易用且功能完备的系统。 一、C#与.NET框架基础 C#是一种面向对象的编程语言,由微软公司开发,主要用于Windows...

    C#.NET开发者手册英文版

    ### C#.NET 开发者手册知识点总结 #### 1. Introducing the Microsoft .NET Platform - **概述**:Microsoft .NET 平台是用于构建、部署和运行应用程序和服务的框架,支持多种编程语言。 - **特点**: - 跨语言互...

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

    本项目旨在利用 C# 编程语言创建一个 Windows 服务,该服务能够实现系统的定时重启功能。通过设置特定的时间间隔,该服务能够在无人干预的情况下自动重启计算机,这对于维护服务器稳定性、确保系统更新后的重启任务...

    C#与.NET技术平台实战演练.part1

    2-6 保存图形文件第18章使用COM+服务18-1 编写.NET组件18-2 编写转帐类18-3 建立KeyFile与StrongName18-4 建立客户端的接口18-5 测试COM+应用程序第19章编写一个监控文件事务的WindowsService19-1使用Windows...

    学习C#和.net技巧

    - **Windows Forms**:这是一个用于创建桌面应用程序的.NET框架组件。通过Windows Forms,可以快速构建用户界面。 - **ASP.NET**:用于Web开发的重要框架,提供了强大的工具和功能来创建动态的Web应用程序。 - **...

    C#创建Windows服务

    创建Windows服务的第一步是建立一个新的C#项目,并引用`System.ServiceProcess`库。接着,创建一个继承自`ServiceBase`的类,这个类将代表你的服务。在类中,你需要重写`OnStart`和`OnStop`方法,分别定义服务启动和...

    怎么用C#写一个简单的WINDOWS服务程序

    1.在VS.NET2003中新建一个WINDOWS服务程序的项目WinSrv_A。 2.更改SERVICE1.CS属性SERVICENAME为你所要建立的服务名称,在服务管理器->名称中你可以看到你的服务名 3.按F7进入代码窗口,里面有2个重载函数是你要在...

    en_.net_framework_3.5_service_pack_1_x86_x64_ia64.rar

    综上所述,.NET Framework 3.5 SP1是一个重要的软件开发平台,提供了丰富的功能和广泛的支持,对于开发和运行现代Windows应用程序至关重要。无论是开发者还是普通用户,了解和掌握其特点和使用方法,都将有助于更好...

    C# WCF分布式应用程序的建立与调用实例

    在本文中,我们将深入探讨如何使用C#和Windows Communication Foundation(WCF)技术来构建一个分布式应用程序。WCF是.NET框架中的一个核心组件,它提供了一种统一的方式来创建和使用网络服务,允许不同应用程序之间...

    测试用ASP.net建立的服务程序

    在描述中提到了“C#建立一个WinForm应用程序”,WinForm是.NET Framework中的一个库,用于构建桌面应用程序的用户界面。这个WinForm应用程序作为客户端,它的任务是调用服务端提供的服务。为了实现这一点,我们需要...

    [C.NET程序的设计]教(学案.doc

    【C#.NET程序设计】课程主要讲解了C#编程语言及其在.NET框架中的应用。课程目标包括理解C#和.NET的起源、发展以及C#语言的特点,熟悉C#的安装配置,掌握Microsoft Visual Studio.NET的运行环境,以及通过实践编写和...

    web service 小例子asp.net带access数据库

    在这个"web service小例子asp.net带access数据库"中,我们将探讨如何在ASP.NET环境中创建一个简单的Web服务,并将其与Access数据库集成。 首先,我们需要了解ASP.NET Web服务的基础。ASP.NET Web服务,也称为ASMX...

    学习ASP.NET比较完整的流程

    以下是一个详细的指南,涵盖了从基础到进阶的各个阶段。 1. **面向对象语言基础**: - 在开始学习 ASP.NET 之前,首先需要掌握一门.NET 面向对象语言,如 C# 或 VB.NET。面向对象编程(OO)是 ASP.NET 的基础,...

    建立asp.net开发平台

    下面将详细介绍如何建立一个ASP.NET开发平台。 **1. 安装必备软件** 首先,你需要在你的计算机上安装以下软件: - **Visual Studio**: 微软的集成开发环境(IDE),提供了编写、调试和部署ASP.NET应用的全面支持。...

    C#ble低功耗蓝牙

    在C#中,`GattService`类代表一个服务,`GattCharacteristic`类表示特性。我们可以遍历这些服务和特征,读取或写入数据,或者注册特征的值改变通知。 4. **数据传输:** 数据在BLE设备间通过读写特征值进行传输。`...

    c# 天气预报服务程序

    创建天气预报服务的第一步是建立一个基础的C#项目,选择“Windows服务”模板。这个模板会为我们生成一个基本的服务结构,包括OnStart和OnStop方法,分别对应服务启动和停止时执行的代码。 接着,我们要实现获取天气...

Global site tag (gtag.js) - Google Analytics