一个简单的C 一个简单的c程序
创始人
2024-05-04 01:41:13
0

今天在做个程序,写一个通讯平台,功能是一个TCP的通讯平台,和应用网关通讯,一边是SQLSERVER的扩展存储过程,它从SQL库中提出相应的字段,通过UDP丢包给通讯平台,平台收到包后连应用网关,把数据包发过去并接收应用网关的回执。实现上准备写个windows服务程序,这样即使机器重起了,不用登陆也可以运行,不会影响到业务的正常运行。

在做C# WINDOWS服务之前先熟悉一下C# WINDOWS服务程序在C#中的写法。

1.在VS.NET2003中新建一个WINDOWS服务程序的项目WinSrv_A。

2.更改SERVICE1.CS属性SERVICENAME为你所要建立的服务名称,在服务管理器->名称中你可以看到你的服务名

3.按F7进入代码窗口,里面有2个重载函数是你要在其中写代码的一个是

  1. //protected override void OnStart(string[] args)  
  2. //{...} //这个函数是你启动服务后执行的函数  
  3. //protected override void OnStop()  
  4. //{...}//这个函数是你停止服务后执行的函数 

我这里简单的做一个记录启动和终止服务的时间的功能。写如日志文档。              

  1. protected override void OnStart(string[] args)  
  2.             {  
  3.                    // TODO: 在此处添加代码以启动服务。  
  4.                   String s = System.DateTime.Now.ToString();  
  5.                   if(!File.Exists("c:\\srvlog.txt"))  
  6.                   {  
  7.                         StreamWriter sr = File.CreateText("c:\\bbbirdlog.txt");  
  8.                         sr.WriteLine("-------------------------START SRV---------------------");  
  9.                         sr.WriteLine ("我的新服务在{0}时间开始",s);  
  10.                        sr.WriteLine ("我可以写整型 {0} or 浮点型 {1},等等.",1, 4.2);  
  11.                        sr.Close();  
  12.                   }  
  13.                   else 
  14.                   {  
  15.                        StreamWriter sr = File.AppendText("c:\\bbbirdlog.txt");  
  16.                       sr.WriteLine("-------------------------START SRV---------------------");  
  17.                       sr.WriteLine ("我的新服务在{0}时间开始",s);  
  18.                        sr.WriteLine ("我可以写整型 {0} or 浮点型 {1},等等.",1, 4.2);  
  19.                        sr.Close();  
  20.                   }  
  21.              }  
  22.  
  23.                ///   
  24.               /// 停止此服务。  
  25.               /// 
  26.  
  27.                protected override void OnStop()  
  28.                {  
  29.                        // TODO: 在此处添加代码以执行停止服务所需的关闭操作。  
  30.                         String s1 = System.DateTime.Now.ToString();  
  31.                         if(!File.Exists("c:\\srvlog.txt"))  
  32.                         {  
  33.                          StreamWriter sr = File.CreateText("c:\\bbbirdlog.txt");  
  34.                          sr.WriteLine("-------------------------STOP SRV---------------------");  
  35.                          sr.WriteLine ("我的新服务在{0}时间停止",s1);  
  36.                          sr.Close();  
  37.                         }  
  38.                         else 
  39.                         {  
  40.                          StreamWriter sr = File.AppendText("c:\\bbbirdlog.txt");  
  41.                          sr.WriteLine("-------------------------STOP SRV---------------------");  
  42.                          sr.WriteLine ("我的新服务在{0}时间停止",s1);  
  43.                          sr.Close();  
  44.                          }  
  45.                    } 

4.回到设计窗口点右键选择添加安装程序生成serviceInstaller1和serviceProcessInstaller1两个组件

把serviceInstaller1的属性ServiceName改写为你的服务程序名,并把启动模式设置为AUTOMATIC

把serviceProcessInstaller1的属性account改写为LocalSystem

5.编译链接生成服务程序。

6.用.net framework工具INSTALLUTIL安装服务程序即可。

这样,就用C#写了一个简单的C# WINDOWS服务程序。

【编辑推荐】

  1. C#控制台应用程序的基本结构
  2. C#编程:使用迭代器
  3. 浅谈C#泛型的定义、继承、方法和约束
  4. C++和C#相互调用COM组件的方法简介
  5. 如何实现C#代理(Delegate)

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...