记录流程执行

时间:2014-01-24 23:50:36

标签: c# .net

我正在尝试使用这段代码从相同的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命令时得到输出结果?

2 个答案:

答案 0 :(得分:0)

您可以重定向net stop命令的输出,但根据TomT的评论,这似乎是一种非常迂回的方式来重新启动服务。

psi.Arguments = "/C net stop \"EmailService-3.1.0\" > C:\\svclog.txt "; //&& net start \"EmailService-3.1.0\"";

答案 1 :(得分:0)

我可以在stop命令中看到服务名称后面缺少引号。否则可能是权限问题。也许您的服务已登录的用户没有足够的权限来停止服务。