那下面就来说说如何制作一个服务来 实现开机自动启动,每隔一段时间向student表中插入数据。
步骤: 1) 新建项目 ---> Windows 服务
2) 拖放Times控件
工具箱中 拖放一个 Time控件 (是System.Times 空间下的(要自己添加到工具箱中的,默认没有),不是System.Form.Windows.Time下的。这而不能引用错了,否则会服务不能正确运行.具体为什么,有待研究)
3) 右击空白处,点击安装程序
紧接着会出现
,然后设置它的 Account 值为 LocalSystem
将 serviceInstaller1 的statrtype=Automatic (开机自动启动)
4) 双击Times控件,开始写服务要执行的代码 (向student表中隔一秒插入一条数据)
private
void
timer1_Elapsed(
object
sender, System.Timers.ElapsedEventArgs e)
{
try
{
//数据库操作
string
ConString =
"server=127.0.0.1;database=student;server=127.0.0.1;database=MySqlData;Integrated Security=SSPI"
;
SqlConnection ConStudent =
new
SqlConnection(ConString);
SqlCommand Cmd =
new
SqlCommand(
"insert into student (nameid) values ('3')"
, ConStudent);
ConStudent.Open();
Cmd.ExecuteNonQuery();
ConStudent.Close();
}
catch
(Exception ee)
{
}
}
#region 服务启动后要执行的数据库操作
protected
override
void
OnStart(
string
[] args)
{
// TODO: 在此处添加代码以启动服务。
try
{
timer1.Start();
}
catch
{
}
}
#endregion
然后 debug 或者 Release都行。
5) 通过 Windows 文件夹下 Microsoft.net下的framework 文件夹中的 installutil.exe来向系统注册服务。
最简单方法:将installutil.exe拷贝到刚才debug或者Release文件夹下,直接将刚才的程序拖放上来就可以注册了。
(注:1.通过dos下注册的,有可能会提示文件找不到,那就把intallutil.exe拷贝到相应文件夹内即可
2.dos下注册为 intallunit.exe 目标文件的完整路径
3.服务不能单独编译,但是可以通过 VS 的附加进程编译来调试!
)
总结: 调试的时候发现2个问题
1.installutil.exe无法注册服务,提示找不到文件.
解决方案: installutil.exe 拷贝到 目标 exe文件夹中
2. 服务启动了,但是没有 执行相应的操作。
解决方案: Times 控件换为 System.Times下的。 (需要另外添加)
默认的是 Windows.form.Times 控件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!