Accionando una aplicación de consola de una máquina diferente - .NET
-
24-10-2019 - |
Pregunta
Tengo una máquina A donde ejecuto un servicio web que necesita invocar una aplicación de consola en la máquina B. Ambos están en el mismo dominio y puedo ajustar los derechos si es necesario.
¿Debería usar Remoting para esto o WCF ayude?
Solución
Arquitectónicamente, parece que tiene un servicio y que necesita iniciar un flujo de trabajo y que el flujo de trabajo sea una aplicación de consola. en otro servidor. Si ese es el caso, crearía un servicio B que vive en el mismo servidor que la aplicación de la consola. y haga que el servicio sea una llamada en cola al servicio B utilizando WCF. No desea llamar directamente, ya que no desea que su servicio bloquee el resultado de su aplicación de consola.
Hay muchos buenos ejemplos de hacer llamadas en cola en todos los servicios. Ver "Llamadas en cola" aquí. Si el servicio A necesita una respuesta del Servicio B sobre el éxito o el fracaso de la llamada, es una llamada en cola que se remonta al otro lado.
Otros consejos
Si está en un dominio de Windows, puede usar herramientas SysInternal para emitir llamadas de procedimientos remotos (RPC).
Suite Sysinternals: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
Algunas de las herramientas de Sysinternal que son útiles para esto incluyen:
- psexec.exe - ejecutar remotamente
- pskill.exe - Mata un proceso remoto
- psservice.exe: inicie/detenga un servicio remoto
Si eres un Linux, a menudo simplemente instalo OpenSSH y luego SSH en la otra máquina. Linux tiene un método RPC, pero no estoy familiarizado con él.