C# 创建简单的Windows Service

对C#一窍不通的我,居然被Manager分配了一个写Windows Service 的活,说是让我多学点东西。。。

可苦逼实习生只有这个命,实力有限,暂时又找不到新的实习。只能硬着头皮干下去了。

下午搜了一下午,总算勉强写了个能写文件的service,mark一下,也许以后还能用的上。


1.创建一个window service 程序


此时程序将会自动为你生成一个叫Program.cs和Service1.cs文件

Program.cs是该程序的入口,包含Main函数

Service1.cs就是我们启动服务时要运行的代码


2.首先实现Service1.cs 的onStart 和onStop方法,即为我们启动服务和停止服务时将会进行的操作

protected override void OnStart(string[] args)
        {
            FileStream fs = new FileStream(@"C:\service1.txt",FileMode.OpenOrCreate,FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine("service start:" + DateTime.Now.ToString());
            sw.Flush();
            sw.Close();
            fs.Close();
        }


        protected override void OnStop()
        {
            FileStream fs = new FileStream(@"C:\service1.txt", FileMode.OpenOrCreate, FileAccess.Write);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine("service stop:" + DateTime.Now.ToString());
            sw.Flush();
            sw.Close();
            fs.Close();

       }

这段代码是在网上抄的,然后我就很困惑为什么要在字符串前加@。搜了一下发现是强制不转义的意思,果然是弱爆了...

然后点击Service1.cs,会出现如下界面:



3. 点击Add Installer,将会为我们的程序自动添加一个ProjectInstaller.CS,用来在安装到的系统上注册一项服务。

如图:



4. 选中serviceInstaller1,在Properties中修改ServiceName为Service1(默认不需修改),修改StartType为Automatic,自启动

也可以修改Description 和DisplayName 是你在Services中显示名和描述(可选)

选中serviceProcessInstaller1,修改Account 为LocalSystem


5. 点击Run 按钮,一般会出现如下对话框:


这是说我们不能通过run来运行该服务,必须用installutil.exe(.NET提供的组件)来run这个程序。


但是我们可以在该项目的bin\Debug\ 目录下发现多了一个 WindowsService1.exe的可执行文件。


6.现在我们以管理员身份启动命令行,首先cd 到该debug目录下,然后执行如下命令:

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe  WindowsService1.exe

如果要卸载该服务则执行

%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u WindowsService1.exe

SystemRoot通常指的是C:\Windows,WindowsService1.exe 是你在debug目录下生成的可执行文件。

执行完毕后,启动services.msc即可查看到有一个叫做Service1的服务,或者是你自定义的DisplayName.

Start it!

你就可以看到在C盘下生成的service1.txt 文件了。

终于码完了....累死,歇会,下班!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值