1

これはかなり一般的なエラーであり、通常は 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 ハウツーに基づいて作成したインストーラーを使用しています。私は明らかに、コードが変更されるたびにビルド/アンインストール/再インストールも行っています。

4

1 に答える 1

1

どうやら問題はインストールにあり、コードではありませんでした。installutilを介してインストールすると、すべてが正常に機能します。

于 2012-06-20T16:24:40.430 に答える