C#中WebService 的 Timer定时器过段时间后自动停止运行

我用.net做的一个Timer定时器,定时获取短信并给予回复,但大概过了十几个小时以后,Timer定时器会自动停止,再发送短信就不能收到回复,需要在服务器中重新运行定时器才可以,请教各位!
我是在.net framework中的,有一个Global.asax全局应用程序文件,帖代码:
public class Global : System.Web.HttpApplication
{
double iTimerInterval;
System.Timers.Timer timer = new System.Timers.Timer();
SmsRun smsRun = new SmsRun();
object objLock = new object();
protected void Application_Start(object sender, EventArgs e)
{
//在应用程序启动时运行的代码
//在新会话启动时运行的代码
SetAccount();
timer.Start();//定时器开始
}

protected void Application_End(object sender, EventArgs e)
{
timer.Stop();
}

private void SetAccount()
{
double.TryParse(ConfigurationManager.AppSettings["TimerInterval"], out iTimerInterval);
timer.Interval = iTimerInterval;
timer.Elapsed += new System.Timers.ElapsedEventHandler(getMessage);
//getMessage是个方法(略)
}



提问者采纳:
 
有可能是由于timer已经被回收掉了 你是在什么环境下面winform? webform? 

经过你的补充我看明白了 是这样的 由于你的应用程序在特定空闲时间之后相应的w3wp辅助进程会被回收掉 所以你的timer自然没有作用了 你可以查看iis 应用程序池的属性 切换到性能选项卡空闲超时 默认的时间是20分钟 也就是说如果20分钟内你的网站没有任何请求那么就会造成回收


-----------------------------------------------------------
截图:
 
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值