Windowsサービスを作成し、ネットワーク内の3台のコンピューターにインストールしました。
2つでは問題なく動作しますが、3つ目では問題があります。
InitializeComponent()
イベントログを使用して問題の場所を特定しましたが、システムを再起動したときに初めてログが挿入され、コンストラクターでコマンドを実行するだけであることがわかりました。
注:私のサービスは、ネットワーク内のすべてのアカウントのログインとログアウトを挿入する必要があり、サービスを開始する前にそれらが正常に開始する3つの依存関係が必要です。
編集: 私はこの記事に従ってサービスを作成しました。次のコードはサービスのコンストラクターです。
ComAdminCatalogClass comAdmin = new ComAdminCatalogClass();
ICatalogCollection subCollection;
//Service Constructor
Public Service1()
{
try
{
EventLog.WriteEntry("Service1","1");
InitializeComponent();
EventLog.WriteEntry("Service1","2");
subCollection = (ICatalogCollection)comAdmin.GetCollection("TransientSubscriptions");
SubScribToEvent(subCollection, "Logon");
SubScribToEvent(subCollection, "Logoff");
}
catch (Exception exp)
{
EventLog.WriteEntry("Service1",exp.Message);
}
}