C# 开发windows服务项

简介:

对于用C# 开发windows服务,前几周可以说还是很茫然的阶段,最近下了翻功夫,稍微有了了解。虽然只是入门阶段但是依然想记录下来当中遇到的问题,我想对于对于想用用C#开发windows服务的同学,会有一定的帮助。

  下面就具体的实例,进行分析。

1、首选我们需要打开VS2010,然后点击文件--》新建--》项目,选择Visual C#--》windows--》windows服务。服务命名为ServiceExample,然后我们就会在解决方案中见到如下界面:

             Service1.cs名称在属性中可以修改

2.Service1.c右键打开,快捷键F7,进入写代码页面,里面有两个重载函数,并在其中写一些简单的代码如下所示:

              protectedoverridevoid OnStart(string[] args)

             {

               String s = System.DateTime.Now.ToString();

               if (!File.Exists("D:\\statue.txt"))

               {

                  StreamWriter sr = File.CreateText("D:\\statue.txt");

                  sr.WriteLine("在{0}成功|运行", s);

                  sr.Close();

               }

               else

               {

                 StreamWriter sr = File.AppendText("D:\\statue.txt");

                 sr.WriteLine("在{0}成功运行", s);

                 sr.Close();

               }

               }

              protectedoverridevoid OnStop()

             {

               String s1 = System.DateTime.Now.ToString();

               if (!File.Exists("D:\\statue.txt"))

               {

                 StreamWriter sr = File.CreateText("D:\\statue.txt");

                 sr.WriteLine("-------------------------STOP SRV---------------------");

                 sr.WriteLine("服务在{0}时间停止", s1);

                 sr.Close();

               }

               else

               {

                 StreamWriter sr = File.AppendText("D:\\statue.txt");

                 sr.WriteLine("-------------------------STOP SRV---------------------");

                 sr.WriteLine("服务在{0}时间停止", s1);

                 sr.Close();

              }

            }

3.回到设计窗口点右键选择添加安装程序生成serviceInstaller1 serviceProcessInstaller1两个组件把serviceInstaller1的属性ServiceName改写为你的服务名,并把启动模式设置为AUTOMATIC,把serviceProcessInstaller1的属性account改写为LocalSystem

4.F6对程序进行编译,生成Service.exe文件。

至此一个简单的服务就算是完成了,下面对程序进行安装。(程序包在“D:\ServiceExample)。

   对服务的安装:

   第一种:打开计算机Dos命令窗口,以管理员身份运行,键入以下命令:

    

 

   而后输入命令:

   InstallUtil.exe  ServiceExample.exe

但是通常情况下是运行不成功的,为了这个神一样坑的问题,耗费了我二天的时间,才解决了这个问题。缺乏InstallUtil.exe文件,这个文件个人感觉类似于引导符,可以从其他服务处复制过来。

当运行成功后,Dos命令中会有相应的提示,我们也可以在“D:\\statue.txt看到相应记录。

第二种:在VS2010中有相应的DOS平台:

 

    在此处打开命令符和第一种一样,当时最后一处不同,直接输入:

    InstallUtil  ServiceExample.exe

    此处不需要 InstallUtil.exe 引导。

   服务的启动:

   sc delete ServiceExample.

   服务的删除:

   cd  c:\windows\system32\

   sc delete ServiceExample.

   查看服务;

   services.msc      进入服务列表

   在此处可以看到我们安装的服务。




本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/1253988,如需转载请自行联系原作者
相关文章
|
2月前
|
开发框架 监控 安全
Windows Defender 导致 Web IIS 服务异常停止排查
某日凌晨IIS服务异常停止,经查为Windows Defender安全补丁KB2267602触发引擎更新,导致系统资源波动,进而引发应用池回收。确认非人为操作,系统无重启。通过分析日志与监控,定位原因为Defender更新后扫描加重负载。解决方案:将IIS及.NET相关路径添加至Defender排除列表,避免业务影响。
342 116
|
3月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
1416 123
|
10月前
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
1877 82
|
9月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
256 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
8月前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
299 0
|
11月前
|
监控 搜索推荐 开发工具
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
1104 2
2025年1月9日更新Windows操作系统个人使用-禁用掉一下一些不必要的服务-关闭占用资源的进程-禁用服务提升系统运行速度-让电脑不再卡顿-优雅草央千澈-长期更新
|
前端开发 JavaScript 安全
C#一分钟浅谈:Blazor WebAssembly 开发
Blazor WebAssembly 是一个客户端框架,允许开发者使用C#和Razor语法构建Web应用。本文介绍了Blazor WebAssembly的基本概念、常见问题及解决方案,包括路由配置、数据绑定、异步操作、状态管理和性能优化等方面的内容,并分享了一些易错点及如何避免的方法。希望这些内容能帮助你在Blazor WebAssembly开发中少走弯路,提高开发效率。
410 51
|
12月前
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
373 12
|
边缘计算 安全 网络安全
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
1047 4