2011-04-08 49 views
5

Me preguntaba si era posible ejecutar una función de línea de comandos en el servidor a través de una aplicación web de mvc.Línea de comando del lado del servidor

Para aclararme a mí mismo:
Un usuario carga un par de archivos en el servidor a través de la aplicación web mvc. Luego, presiona un botón y el servidor ejecuta una aplicación de línea de comando.

¿Esto es posible?

gracias de antemano

Nota: El servidor es Windows 2008.

Respuesta

8

Sí. Suponiendo que tiene una aplicación de línea de comandos (es decir, su propia aplicación de consola) que no requiere la interacción del usuario, puede intentar lo siguiente dentro de su método de controlador.

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

Una cosa para tener en cuenta es la identidad de la cuenta de usuario que ejecutará este proceso. De forma predeterminada, esto debería ejecutar el lado del servidor usando las credenciales de la AppPool. Esto puede ser un problema si necesita acceder a los recursos de la red. Una forma de superar esto simplemente es dejar que AppPool se ejecute en una cuenta de usuario a la que se le haya otorgado acceso a estos recursos.

+0

Gracias por la posible respuesta – Cobalt

+0

Tengo exactamente el mismo requisito. Gracias. –

Cuestiones relacionadas