笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

时间:2022-02-23 07:38:23

contents structure [-]

比来写了一个TCP连接的措施,由于这种通信协议差别于HTTP协议,因此还不能部署到网站上面,于是就用到了Window处事。接下面笔者介绍一下在Visual Studio中如何安置、调试Windows处事。笔者的Visual studio版本为2012,window版本为win7。

1.创建Windows处事

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

这时候点击“启动”按钮,会提示我们启动掉败。

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

这因为Windows处事不能像普通窗口措施那样启动,接下来就安置处事。

2.配置

在Service1.cs上右键,,选择“检察设计器”,

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

然后再在上面的空白处,右键选择“添加安置措施”,

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

这时候,Visual Studio就会自动为我们生成一个ProjectInstaller.cs文件,接下来,右键ProjectInstaller.cs,选择“检察设计器”,就可以看到如下的界面,

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

可以看到两个控件,点击右击第一个控件,打开属性设计器,将此中的Account设置为LocalSystem(本地处事),

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

接下来,右击上面的第二个控件,打开属性界面,设置ServiceName,和将此中的StratType设置为Automatic,

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

接下来,为了测试需要,笔者写一些测试代码:

public partial class Service1 : ServiceBase { private readonly Timer _MyTimer; public Service1() { InitializeComponent(); _MyTimer = new Timer(10*1000); //10秒钟启动一次 _MyTimer.Elapsed += _MyTimerElapsed; } protected override void OnStart(string[] args) { _MyTimer.Start(); } protected override void OnStop() { _MyTimer.Stop(); } internal void _MyTimerElapsed(object sender, ElapsedEventArgs e) { try { //添加往C盘新建一个文本文件的措施 try { string logFileName = @"C:\\log.txt"; // 文件路径 FileInfo fileinfo = new FileInfo(logFileName); using (FileStream fs = fileinfo.OpenWrite()) { StreamWriter sw = new StreamWriter(fs); sw.WriteLine("====================================="); sw.Write("添加日期为:" + DateTime.Now.ToString() + "\r\n"); sw.WriteLine("====================================="); sw.Flush(); sw.Close(); } } catch (Exception ex) { // ex.ToString(); } } catch (Exception ex) { } } }

上面的代码,笔者写到Service1.cs类中,该类是Visual Sudio在启动的时候,自动为我们创建好的类文件。不雅察看这个类文件,可以发明,该类担任了ServiceBase,ServiceBase是处事类的基类,也就是说想要创建处事,必须担任这个类,ServiceBase中有两个要领对照常用,分袂为OnStart()和OnStop(),顾名思义,OnStart要领在处事启动的时候挪用,OnStop要领在处事遏制的时候挪用。

在测试代码写好后,我们就可以点击 生成》生成解决方案,如果后需改削了,那么需要点击从头生成解决方案:

笔者写一些测试代码: public partial class Service1 : ServiceBase{ priv

在解决方案生成好后,接下来就是安置Windows处事了。

3.安置Windows处事