怎样把写好的控制台程序成为windows服务
怎样把写好的控制台程序变成windows服务
怎样把写好的控制台程序变成windows服务,求大神指点,多谢!
------解决方案--------------------
windows服务主要是两个方法,一个是onstop一个是onstart
你需要做的是,在onstart中启动定时器或者线程,把控制台程序的主体放在现成或者定时器事件中。
另外就是不要有console.read这样的东西存在,因为服务是没有办法输入的。输出可以改写成输出到文件中。
onstop里面关闭定时器或者终止操作。
------解决方案--------------------
正好做过一个
主程序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了
------解决方案--------------------
追加安装文件的方法是:
在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
------解决方案--------------------
有安装文件就不需要再添加了。
选中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加到系统服务里
当执行完上面的,正常的话服务的名字会出现在
控制面板--管理工具--服务--的列表里面,和一般的系统服务一样了。
怎样把写好的控制台程序变成windows服务,求大神指点,多谢!
------解决方案--------------------
windows服务主要是两个方法,一个是onstop一个是onstart
你需要做的是,在onstart中启动定时器或者线程,把控制台程序的主体放在现成或者定时器事件中。
另外就是不要有console.read这样的东西存在,因为服务是没有办法输入的。输出可以改写成输出到文件中。
onstop里面关闭定时器或者终止操作。
------解决方案--------------------
正好做过一个
主程序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了
------解决方案--------------------
追加安装文件的方法是:
在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
------解决方案--------------------
有安装文件就不需要再添加了。
选中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加到系统服务里
当执行完上面的,正常的话服务的名字会出现在
控制面板--管理工具--服务--的列表里面,和一般的系统服务一样了。