我试图使用此代码从同一Windows服务重新启动Windows服务
var proc = new Process();
var psi = new ProcessStartInfo();
psi.CreateNoWindow = true;
psi.FileName = "cmd.exe";
psi.Arguments = "/C net stop "EmailService-3.1.0 && net start "EmailService-3.1.0"";
psi.LoadUserProfile = false;
psi.UseShellExecute = false;
psi.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo = psi;
它不起作用,我不知道为什么,我可以采取任何措施来记录或确定正在调用Net Stop命令时发生的事情的输出?
您可以重定向Net Stop命令的输出,但是根据Tomt的评论,这似乎是重新启动服务的一种非常回旋的方式。
psi.Arguments = "/C net stop "EmailService-3.1.0" > C:\svclog.txt "; //&& net start "EmailService-3.1.0"";
我可以在"停止命令"中看到您服务名称之后的缺少引号。否则,这可能是一个许可问题。也许您服务登录的用户没有足够的特权来停止服务。