怎样把写好的控制台程序变成windows服务

天花板之恋 2014-07-17 11:49:15
怎样把写好的控制台程序变成windows服务,求大神指点,多谢!
...全文
1141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
天花板之恋 2014-07-18
  • 打赏
  • 举报
回复
谢谢您的指导,那怎样把写好的控制台程序写进建好的服务里面?
swatabc 2014-07-18
  • 打赏
  • 举报
回复
有安装文件就不需要再添加了。 选中serviceInstaller,VS右侧属性窗口有一个ServiceName属性,是用来设置服务的名字的。 选中serviceprocessInstaller,VS右侧属性窗口有一个Account属性,选择LocalService。 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 //根据你的.net版本也可能是2.0 InstallUtil E:\transferSrc\transferSrc\bin\Debug\transferSrc.exe //InstallUtil就是个工具,会把你编译生成的exe加到系统服务里 当执行完上面的,正常的话服务的名字会出现在 控制面板--管理工具--服务--的列表里面,和一般的系统服务一样了。
天花板之恋 2014-07-18
  • 打赏
  • 举报
回复
引用 5 楼 swatabc 的回复:
追加安装文件的方法是: 在TransferService.cs的设计页面,右键->添加安装程序 //注册服务命令 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 InstallUtil E:\transferSrc\transferSrc\bin\Debug\transferSrc.exe //启动 net start ProcedureRun //停止 net stop ProcedureRun //反注册 InstallUtil /u E:\transferSrc\transferSrc\bin\Debug\transferSrc.exe
谢谢你的指导,但是我进入了添加安装程序的界面后,发现我已经在这里添加了一个serviceprocessInstaller和一个serviceInstaller了,注册服务命令的步骤能再详细一点吗?最后就是怎样把写好的控制台程序加入到windows服务里面?真心谢谢!必给满分!
天花板之恋 2014-07-17
  • 打赏
  • 举报
回复
引用
你需要做的是,在onstart中启动定时器或者线程,把控制台程序的主体放在现成或者定时器事件中
怎样启动线程呢?是把控制台的全部代码都放在线程中么?
天花板之恋 2014-07-17
  • 打赏
  • 举报
回复
请问定时器有什么用呢?
threenewbee 2014-07-17
  • 打赏
  • 举报
回复
windows服务主要是两个方法,一个是onstop一个是onstart 你需要做的是,在onstart中启动定时器或者线程,把控制台程序的主体放在现成或者定时器事件中。 另外就是不要有console.read这样的东西存在,因为服务是没有办法输入的。输出可以改写成输出到文件中。 onstop里面关闭定时器或者终止操作。
swatabc 2014-07-17
  • 打赏
  • 举报
回复
追加安装文件的方法是: 在TransferService.cs的设计页面,右键->添加安装程序 //注册服务命令 cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 InstallUtil E:\transferSrc\transferSrc\bin\Debug\transferSrc.exe //启动 net start ProcedureRun //停止 net stop ProcedureRun //反注册 InstallUtil /u E:\transferSrc\transferSrc\bin\Debug\transferSrc.exe
swatabc 2014-07-17
  • 打赏
  • 举报
回复
正好做过一个 主程序Program.cs ServiceBase[] ServicesToRun; ServicesToRun = new ServiceBase[] { new TransferService() }; ServiceBase.Run(ServicesToRun); 服务TransferService.cs TransferService.cspartial class TransferService : ServiceBase public TransferService() { InitializeComponent(); _scannerTimer = new Timer(1000 * TimerIntervalSecond);//定时器,几秒钟执行一次 _scannerTimer.Elapsed += (sender, e) => TransferData();//服务主体 } 发布前追加一个安装文件就ok了

17,741

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧