これはかなり一般的なエラーであり、通常は Windows サービスの onStart メソッドに関係していることはわかっていますが、なぜこれが機能しないのかわかりません。
Windows イベント ビューアによるエラーのスタック トレースを次に示します。
at System.Diagnostics.EventLog.FindSourceRegistration(System.String, System.String, Boolean, Boolean)
at System.Diagnostics.EventLog.SourceExists(System.String, System.String, Boolean)
at System.Diagnostics.EventLog.SourceExists(System.String)
at ArchivalPurgeService.ArchivalPurge..ctor()
at ArchivalPurgeService.Program.Main()
ここに私のプログラムがあります:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;
namespace ArchivalPurgeService
{
public partial class ArchivalPurge : ServiceBase
{
public ArchivalPurge()
{
try
{
InitializeComponent();
}
catch (Exception ex)
{
}
}
protected override void OnStart(string[] args)
{
try
{
timer2 = new Timer();
timer2.Enabled = true;
timer2.Interval = Convert.ToInt32(System.Configuration.ConfigurationSettings.AppSettings["RuntimeFrequency"]);
}
catch (Exception ex)
{
}
}
private Queue<Job> QueryDBForJobs()
{
int i = 0;
return new Queue<Job>();
}
protected override void OnStop()
{
}
private void timer2_Elapsed(object sender, ElapsedEventArgs e)
{
QueryDBForJobs();
}
}
}
そして、すべてがコメントアウトされていても実行しようとしましたが、同じ問題が発生しています。これは単にインストールの問題でしょうか?Windows サービスを作成するための MSDN ハウツーに基づいて作成したインストーラーを使用しています。私は明らかに、コードが変更されるたびにビルド/アンインストール/再インストールも行っています。