Windows服务不工作没有错误停止

时间:2017-03-30 21:04:37

标签: c# windows service

我到处寻找这个但是我仍然坚持过去几天。我有一个服务,用于每5分钟后调用一个方法

public Service1()
        {
            InitializeComponent();
        }
        private Timer _timer;
        protected override void OnStart(string[] args)
        {
            _timer = new Timer(5*60*1000);
            _timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed);
            _timer.AutoReset = true;
            _timer.Start();
        }
        private void OnTimerElapsed(object sender, ElapsedEventArgs e)
        {
            var FuncFlag = false;
            _timer.Stop();
            send_email("Going To Call API MEthod");
            FuncFlag = Authorization();

            _timer.Start();

            if (!FuncFlag)
            {
                send_email("Service Failure for Authorization");
            }
        }
        public static bool Authorization()
        {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://**.**.**.**:****/");
            HttpResponseMessage response = client.GetAsync("api/values/checkauthorization/).Result;
            if (response.IsSuccessStatusCode)
            {
                send_email("Response Success");
                return true;
            }
            else
            {
                send_email("Response Failed");
                return false;
            }
        }

        protected override void OnStop()
        {
            _timer.Stop();
            _timer.Dispose();
        }
}

在方法上我需要获取一些值以将它们存储在DB中。我只想每隔5分钟调用一次这种方法,如果我错过了任何内容,请帮助我,或者让我知道是否有更好的方法来实现这一目标。

0 个答案:

没有答案