2

我正在编写一个 Windows 服务,除其他外,它需要启动一个具有管理权限的辅助程序。该服务运行完美,除非尝试加载辅助程序。以下是代码。“找到更新”回显到日志中,但奇怪的是“异常”或 exception.tostring() 不是。无需在下面粘贴此新代码即可启动、运行和停止服务。现在我正在尝试从该服务启动另一个程序,该服务很快回显“找到更新”,我注意到该服务立即在 services.msc 中读取“服务已停止”。

有谁知道为什么我的 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

0

如果您使用的是 Windows Vista 或更高版本,由于服务隔离,您将无法启动任何交互式应用程序。

以下是您的问题的一些很好的答案:

如何使用 C# 从 Windows 服务运行 EXE 程序?

如何从 Windows 服务运行控制台应用程序?

于 2013-07-22T05:35:02.717 回答