2

私は、特に管理者権限でセカンダリ プログラムを開始する必要がある Windows サービスを作成しています。セカンダリプログラムをロードしようとするときを除いて、サービスは完璧に機能します. 以下はコードです。「Update Found」がログにエコーされますが、奇妙な部分は「Exception」または exception.tostring() ではないことです。この新しいコードを下に貼り付けなくても、サービスを開始、実行、および停止できます。サービスから別のプログラムを起動しようとすると、サービスはすぐに「更新が見つかりました」とエコーし、その直後にservices.mscでサービスが「サービスが停止しました」と表示されることに気付きます。

2 番目のプログラムを起動すると、Windows C# サービスがクラッシュする理由がわかる人はいますか?

System.IO.File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "log.txt", "Update Found\r\n");
try
{
    System.Diagnostics.Process processss = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfooo = new System.Diagnostics.ProcessStartInfo();
    startInfooo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfooo.FileName = "cmd.exe";
    startInfooo.Arguments = "/C " + AppDomain.CurrentDomain.BaseDirectory + "Manager.exe";
    processss.StartInfo = startInfooo;
    processss.Start();
    System.Threading.Thread.Sleep(10000);
}
catch (Exception ex)
{
    System.IO.File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "log.txt", "Exception");
    System.IO.File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "log.txt",ex.ToString());
}
4

1 に答える 1