C # Как я могу убить стартовый процесс? - PullRequest
0 голосов
/ 05 апреля 2011

Я разработал веб-страницу в 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());
}

Код работает нормально и запускает процесс.

Теперь проблема:

Я нажимаю на кнопку, и процесс начинается (я вижу это в базе данных), и программа работает нормально, однако, я хочу остановить процесс сейчас, но не знаю как.

Нет DOS-окна, в котором я могу нажать "CTRL + C" или что-то в этом роде.

Что я могу сделать, чтобы остановить процесс?

А какой пользователь используется для запуска процесса?

Ответы [ 2 ]

6 голосов
/ 05 апреля 2011

Просто используйте Process.Kill:

p.Kill();

UPDATE:
Из-за вашего комментария я привожу это как альтернативу:
Чтобы завершить процесс без кода, используйте диспетчер задач (откройте его с помощью клавиш CTRL + SHIFT + ESC или CTRL + ALT + DEL -> Диспетчер задач), перейдите на вкладку «Процессы», выберите «Показать процессы всех пользователей» выберите процесс и нажмите «Завершить процесс» ...

0 голосов
/ 05 апреля 2011

Вы можете сохранить объект Process в виде поля под классом страницы и вызвать .Kill at с помощью другой кнопки.Но в этом случае вы сможете разместить только 1 процесс и должны подумать о том, как сделать его безопасным только один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...