Я делаю свой последний годовой проект, внедряя обучающее веб-приложение с использованием ASP. NET Ядро, однако на некоторых страницах мне нужно, чтобы пользователь взаимодействовал с каким-либо приложением командной строки, где эти команды должны отправляться на основе заданного вывод из приложения командной строки. У меня нет проблем с отправкой по команде, но когда дело доходит до второй команды, у меня возникает несколько проблем. вот код
public static Process process = new Process()
{
StartInfo = new ProcessStartInfo
FileName = "cmd",
RedirectStandardOutput = true,
RedirectStandardInput = true,
UseShellExecute = false,
CreateNoWindow = true,
}
};
Это мое определение для моего процесса, который я создал вне функции, потому что мне нужно использовать один и тот же процесс несколько раз, пока пользователь не покинет страницу. Для process.Start();
я поставил с функцией просмотра страницы, поэтому процесс уже запущен и никаких проблем с ним нет.
public IActionResult acceptingInputFromUser(string input)
{
string result;
try
{
StreamWriter sw = process.StandardInput;
StreamReader rd = process.StandardOutput;
using (process.StandardInput)
{
sw.WriteLine(input);
sw.Flush();
sw.Close();
result = process.StandardOutput.ReadToEnd();
}
}catch (Exception ex)
{
result = ex.ToString();
}
return Json(result);
}
Здесь, где проблема , один раз пользователь отправляет любой ввод, который примет первый раз, и выдаст результат, однако, когда он отправляет другой запрос, он говорит:
Невозможно записать в закрытый TextWriter
У меня есть пробовал несколько способов, но пока не смог найти решение. Может ли кто-нибудь помочь мне с этой ошибкой, например, как я могу снова открыть Textwriter или есть какой-либо другой эффективный способ, где я могу свободно использовать CMD.