请问怎么处理Windows服务

toploveall 2010-02-23 01:05:45
我写了个Windows服务,要每隔10分钟读取一次数据库

public SMS_TransferServer()
{
InitializeComponent();

TenTimer = new Timer();
TenTimer.Elapsed += new ElapsedEventHandler(TenTimer_Elapsed);
//设置触发间隔时间(每10分钟)
TenTimer.Interval = 1000 * 600;
}

void TenTimer_Elapsed(object sender, ElapsedEventArgs e)
{
PushSendBox(GetTimingBox());//读取数据库
}
protected override void OnStart(string[] args)
{ this.TenTimer.Enabled = true;}


是这样写吗?
是不是我双击这个服务生成的exe就可以实现每10分钟执行一次PushSendBox方法?
我怎么调试?设个断点怎么跟进去?
谢谢
...全文
88 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bwangel 2010-02-23
  • 打赏
  • 举报
回复
在你安装vs以后, vs的开始菜单埯有 vs2008工具,里面有vs2008命令提示, 打开那个窗口,直接输入InstallUtil.exe 你的服务程序名

如果不用那个命令提示,这个InstallUtil路径很深,你根本找不到.
APP开发王 2010-02-23
  • 打赏
  • 举报
回复
引用 1 楼 guyehanxinlei 的回复:
新建一个Windows服务类型的项目,生成出的模板中有必要的服务方法。
创建一个Timer对象用于定期执行必要的任务,考虑到数据并发的问题需要加上必要的控制方式,比如说Mutex对象等等。

服务是作为一个后台程序在无人干预的情况下执行的,注册服务用InstallUtil.exe 路径+ServiceName.exe

注册完之后到系统服务中将其Start即可.

调式可以附加进程,也可以在代码中加一个Static void main函数来调用。


ding
柳晛 2010-02-23
  • 打赏
  • 举报
回复
编译好的windows服务需要安装在windows操作系统中
命令提示符操作方法:
添加:sc create 服务名 binpath= "文件路径" start= auto(注意,添加服务时等号后面必须有空格)
删除:sc delete 服务名
--------------------------------------------------------------------------------------------------
Visual Studio 2008 命令提示符方法:
添加:installutil 文件路径
删除:installutil 文件路径 /u
  • 打赏
  • 举报
回复
回答最后一个问题:

直接创建windows service程序,然后在项目属性“application”中将项目类型改为console类型的程序,再在 Program.Main 方法一开头增加一个判断:
public static void Main(string[] args)
{
if (args.Length > 0 && args[0] == "-c")
{
//........以控制台方式执行
return;
}

然后,在项目属性“debug”中设置调试时的命令行参数“-c”,这样你每一次调试都自动以console程序运行了,而同时又丝毫不影响作为windows service部署。
zgke 2010-02-23
  • 打赏
  • 举报
回复
InstallUtil.exe 你编译出个EXE

InstallUtil.exe 在 C:\系统目录\Microsoft.net\FrameWork\v????(版号) 下的
toploveall 2010-02-23
  • 打赏
  • 举报
回复
引用 1 楼 guyehanxinlei 的回复:
新建一个Windows服务类型的项目,生成出的模板中有必要的服务方法。
创建一个Timer对象用于定期执行必要的任务,考虑到数据并发的问题需要加上必要的控制方式,比如说Mutex对象等等。

先要注册?请问InstallUtil.exe 怎么执行它?从什么地方找它?是ProjectInstaller服务吗,它也没生成exe文件。
guyehanxinlei 2010-02-23
  • 打赏
  • 举报
回复
新建一个Windows服务类型的项目,生成出的模板中有必要的服务方法。
创建一个Timer对象用于定期执行必要的任务,考虑到数据并发的问题需要加上必要的控制方式,比如说Mutex对象等等。

服务是作为一个后台程序在无人干预的情况下执行的,注册服务用InstallUtil.exe 路径+ServiceName.exe

注册完之后到系统服务中将其Start即可.

调式可以附加进程,也可以在代码中加一个Static void main函数来调用。

110,549

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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