クラスを実行するために15分間隔ごとにクラスライブラリを作成するWindowsサービスを作成しました。
マシンにWindowsサービスを展開すると正常に動作し、タイマーは正常に動作し、15分ごとにクラスライブラリを呼び出しますが、サーバーに展開すると、onstartでのみ正常に動作します。私のクラスライブラリを呼び出すと思われる分が発生していません。問題を特定するためにここで何を調べればよいか教えてください
ここに私のコードがあります
public partial class Service1 : ServiceBase
{
private Timer _timer;
private DateTime _lastRun = DateTime.Now;
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
log4net.Config.XmlConfigurator.Configure();
_timer = new Timer(10 * 60 * 1000); // every 10 minutes
_timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
Shell Distribute= new Shell();
Distribute.Distribute();
_timer.start();//this line was missed in my original code
}
protected override void OnStop()
{
this.ExitCode = 0;
base.OnStop();
}
private void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
//if (_lastRun.Date < DateTime.Now.Date)
//{
try
{
_timer.Stop();
Shell Distribute= new Shell();
Distribute.Distribute();
}
catch(exception ex)
{}
finally
{
_timer.Start();
}
//}
}
}
}
私はログオンの問題を強く信じていますが、同じアカウントを使用してテストサーバーでこのサービスを開始または再起動すると、タイマーだけが機能しない場合、2 つの理由で確信が持てません。コードはまったく同じなので、同じアカウントを使用するローカル マシンに基づいてタイマーが動作するので、コードについてはあまり心配しません。前もって感謝します。