Командная строка на стороне сервера

#asp.net-mvc-3 #command-line

#asp.net-mvc-3 #командная строка

Вопрос:

Мне было интересно, возможно ли запустить функцию командной строки на сервере через веб-приложение mvc.

Чтобы внести ясность:
Пользователь загружает пару файлов на сервер через веб-приложение mvc. Затем пользователь нажимает кнопку, и сервер запускает приложение командной строки.

Возможно ли это?

Заранее благодарю вас

ПРИМЕЧАНИЕ: Сервер установлен под управлением Windows 2008.

Ответ №1:

ДА. Предполагая, что у вас есть приложение командной строки (т. Е. ваше собственное консольное приложение), которое не требует взаимодействия с пользователем, вы можете попробовать следующее в вашем методе контроллера.

 Process serverSideProcess = new Process();
serverSideProcess.StartInfo.FileName = @"C:pathToTheExe";
serverSideProcess.StartInfo.Arguments = "arg1 arg2 arg3"; 
serverSideProcess.EnableRaisingEvents = true;
serverSideProcess.StartInfo.UseShellExecute = true;
serverSideProcess.Start();
  

Следует обратить внимание на идентификатор учетной записи пользователя, которая будет выполнять этот процесс. По умолчанию это должно выполняться на стороне сервера с использованием учетных данных AppPool. Это может быть проблемой, если вам необходимо получить доступ к сетевым ресурсам. Один из способов просто преодолеть это — позволить AppPool запускаться под учетной записью пользователя, которому предоставлен доступ к этим ресурсам.

Комментарии:

1. Спасибо за возможный ответ

2. У меня точно такое же требование. Спасибо.