我在ASP.NET中开发了一个网页 - 该页面有一个按钮,可以在点击时启动DOS程序。
以下是代码:
if (!String.IsNullOrEmpty(endTime))
{
Process p = new Process();
p.StartInfo.WorkingDirectory = Server.MapPath("~/");
p.StartInfo.FileName = Server.MapPath(apiFile);
try
{
p.Start();
}
catch
{
throw new Exception(
"Requested process (" + p.StartInfo.FileName + ") could not be started. Page: Api.aspx.cs, Method: UploadBtn_Click()");
}
System.Threading.Thread.Sleep(5000);
Response.Redirect(Request.Url.ToString());
}
代码工作正常并启动Process。
现在问题:
我点击按钮,进程开始(我在数据库中看到这个),程序运行正常,但是,我想现在停止进程,但不知道如何。
没有DOS窗口,我可以点击“CTRL + C”或其他东西。
我该怎样做才能停止这个过程?
哪个用户用于启动流程?
答案 0 :(得分:6)
只需使用Process.Kill
:
p.Kill();
<强>更新强>
由于你的评论,我提供了另一种选择:
要终止没有代码的进程,请使用任务管理器(使用CTRL + SHIFT + ESC或CTRL + ALT + DEL - >任务管理器打开它),导航到“进程”选项卡,选择“显示所有用户的进程” ,选择您的流程,然后点击“结束流程”...
答案 1 :(得分:0)
您可以将Process对象存储为页面类下的字段,然后使用另一个按钮调用。但在这种情况下,您将只能容纳一个进程,并且应该考虑如何只运行一个进程。