我正在编写一个Windows服务,它需要启动一个具有管理权限的辅助程序。除了尝试加载辅助程序外,该服务运行良好。以下是代码。日志中会回显"Update-Found",但奇怪的是"Exception"或Exception.tostring()没有。该服务可以在不粘贴以下新代码的情况下启动、运行和停止。现在我正试图从该服务启动另一个程序,该服务很快响应"找到更新",我注意到该服务在services.msc中立即显示"服务已停止"。
有人知道为什么我的Windows C#服务在启动第二个程序时崩溃了吗?
System.IO.File.AppendAllText(AppDomain.CurrentDomain.BaseDirectory + "log.txt", "Update Foundrn");
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());
}
如果您使用的是windows Vista或更高版本,由于服务隔离,您将无法启动任何交互式应用程序。
以下是您的问题的一些好答案:
如何使用C#从Windows服务运行EXE程序?
如何从Windows服务运行控制台应用程序?