为什么在我的windows服务里timer空间不起作用??!!
代码是这样的:
public class CheckService : System.ServiceProcess.ServiceBase
{
private System.Timers.Timer CheckTimer;
public static void Main()
{
ServiceBase.Run(new CheckService());
}
public CheckService()
{
// 该调用是 Windows.Forms 组件设计器所必需的。
InitializeComponent();
// TODO: 在 InitComponent 调用后添加任何初始化
CheckTimer = new Timer();
CheckTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
CheckTimer.Interval = 10000;
CheckTimer.Enabled = true;
}
protected void OnTimedEvent(Object source, ElapsedEventArgs e)
{
//修改数据库
CheckDb cd = new CheckDb();
int changeCount = cd.UpdateOrderStatus();
}
}
安装启动windows服务后,数据库并没有更新。
我在Console程序中调试完全通过,只是换到windows服务里就不起作用了,该怎么解决???
问题点数:60、回复次数:11Top
1 楼zhbname(赤澜)回复于 2003-09-03 09:07:35 得分 10
你这好像没有申明是服务,只是调用服务控件类.Top
2 楼ynacc(ynacc)回复于 2003-09-03 09:13:39 得分 0
请说清楚一些,哪里有问题?该怎么写?Top
3 楼snof(雪狼)回复于 2003-09-03 09:14:38 得分 10
你点新建->模板->选择windows服务,然后把你上面的 的代码加进去,Top
4 楼snof(雪狼)回复于 2003-09-03 09:15:01 得分 20
当然记得要启动服务Top
5 楼zhbname(赤澜)回复于 2003-09-03 09:15:58 得分 10
也就是说你的方法没有定义为[ WebMethod ]Top
6 楼ynacc(ynacc)回复于 2003-09-03 09:42:42 得分 0
我就是这样写的啊,服务也installutil了,当然也启动了,但就是不工作!!Top
7 楼ynacc(ynacc)回复于 2003-09-03 09:53:40 得分 0
我检查了一下,服务是启动了,但timer的Elapsed 事件OnTimedEvent,没有执行,是什么缘故呢?Top
8 楼zhbname(赤澜)回复于 2003-09-03 10:07:04 得分 10
[ WebMethod ]中没有加载事务处理
可在[ WebMethod (TransactionOption=TransactionOption.RequiresNew) ]
或(TransactionOption=TransactionOption.Required)Top
9 楼ynacc(ynacc)回复于 2003-09-03 10:27:08 得分 0
问题解决了,谢谢各位
还想问一下,怎么在windows服务里向日志写入错误信息?
我在我的类里添加了EventLog.WriteEntry方法,但不能写入,出错在日志里也看不到!Top
10 楼zhbname(赤澜)回复于 2003-09-03 10:34:16 得分 0
upTop
11 楼zhbname(赤澜)回复于 2003-09-03 10:38:52 得分 0
// Create an EventLog instance and assign its source.
EventLog myLog = new EventLog("myNewLog", ".", "MySource");
// Write an entry to the log.
myLog.WriteEntry("Writing to event log on " + myLog.MachineName);
按上前的方法你先看一下,在win下能否执行,如果能执行,再看[ WebMethod ]了.
Top




