zoukankan      html  css  js  c++  java
  • 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分钟内你的网站没有任何请求那么就会造成回收


    -----------------------------------------------------------
    截图:
    
    
  • 相关阅读:
    python继承__init__函数
    Oracle 用户(user)和模式(schema)的区别【转】
    url增加签名验证防窜改
    Codeforces 每日一练 706C+575H+15C
    Codeforces每日一练 1194D+552C+1117D
    每日一练周赛#2 题解
    AtCoder Beginner Contest 160 题解(F待填坑)
    Codeforces每日一练 1030D+1154E+540D
    Codeforcs 每日一练 678C+527C+1012C
    Codeforces 每日一练922C+725D+1152D
  • 原文地址:https://www.cnblogs.com/zouhao/p/4246801.html
Copyright © 2011-2022 走看看