为了账号安全,请及时绑定邮箱和手机立即绑定

windos服务实现定时写文件

windos服务实现定时写文件

鸿蒙传说 2018-12-06 23:52:33
我写了个windos往文件夹里写东西,但是不行啊,代码如下: Installer1.Designer.cs中的         private System.ComponentModel.IContainer components = null;        private System.ServiceProcess.ServiceProcessInstaller spInstaller;        private System.ServiceProcess.ServiceInstaller sInstaller;        /// <summary>         /// /// 清理所有正在使用的资源。         /// /// </summary>             /// /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>          protected override void Dispose(bool disposing)        {            if (disposing && (components != null))            {                components.Dispose();            }            base.Dispose(disposing);        }         /// <summary>         #region 组件设计器生成的代码        /// /// 设计器支持所需的方法 - 不要           /// /// 使用代码编辑器修改此方法的内容。          /// /// </summary>              private void InitializeComponent()        {            components = new System.ComponentModel.Container();            // 创建ServiceProcessInstaller对象和ServiceInstaller对象                    this.spInstaller = new System.ServiceProcess.ServiceProcessInstaller();            this.sInstaller = new System.ServiceProcess.ServiceInstaller();            // 设定ServiceProcessInstaller对象的帐号、用户名和密码等信息               this.spInstaller.Account = System.ServiceProcess.ServiceAccount.LocalSystem;            this.spInstaller.Password = null;            this.spInstaller.Username = null;            // 设定服务的名称                       this.sInstaller.ServiceName = "WindowsService1";            //设定服务启动的方式                     this.sInstaller.StartType = System.ServiceProcess.ServiceStartMode.Automatic;            this.Installers.AddRange(new System.Configuration.Install.Installer[] { this.spInstaller, this.sInstaller });        }在创建的安装程序类中是         Timer time;        public Service1()        {            InitializeComponent();        }         protected override void OnStart(string[] args)        {            time = new Timer(1000);          time.Start();             time.Elapsed += new ElapsedEventHandler(time_Elapsed);         }         void time_Elapsed(object sender, ElapsedEventArgs e)        {            string filePath = AppDomain.CurrentDomain.BaseDirectory + "test.txt";             StreamWriter sw = null;            if (!File.Exists(filePath)) {                 sw = File.CreateText(filePath);             } else {                sw = File.AppendText(filePath);            }             sw.Write("访问时间:" + DateTime.Now.ToString() + Environment.NewLine); sw.Close();        }         protected override void OnStop()        {            time.Stop();             time.Dispose();        }但是我吧这个服务添加到window服务中,服务也启动了,但是文件没有生产。怎么回事啊。
查看完整描述

4 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你的timer 没有打开定时执行

 timer1.Start();

查看完整回答
反对 回复 2019-01-21
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

我加上了,但是不行还是,对吗
查看完整回答
反对 回复 2019-01-21
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

@水淼:你的timer是那个timer? .net中有3个timer组件。〔详细使googel一下〕 System.Windows.Forms.Timer System.Threading.Timer System.Timers.Timer 在服务中你应该用System.Timers.Timer 。
查看完整回答
反对 回复 2019-01-21
  • 4 回答
  • 0 关注
  • 411 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信