我正在编写一个Windows服务,其中包括需要启动具有管理权限的辅助程序。除尝试加载辅助程序外,该服务工作正常。以下是代码。 “Update Found”被回显到日志中,但奇怪的部分是“Exception”或exception.tostring()不是。该服务可以启动,运行和停止,而不会粘贴下面的新代码。现在我正在尝试从服务启动另一个程序,该服务很快回应“Update Found”,我注意到该服务在services.msc之后立即显示“Service Stopped”。
有没有人在启动第二个程序时看到我的Windows C#Service崩溃的原因?
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());
}
答案 0 :(得分:0)
如果您使用的是Windows Vista或更高版本,由于服务隔离,您将无法启动任何交互式应用程序。
以下是您的问题的一些好答案:
How can I run an EXE program from a Windows Service using C#?