Доступ к консольному приложению с другого компьютера - .NET
У меня есть машина A, на которой я запускаю веб-сервис, который должен вызывать консольное приложение на компьютере B. Оба они находятся в одном домене, и я могу настроить права, если потребуется.
Должен ли я использовать удаленное взаимодействие для этого или WCF помогает?
2 ответа
Архитектурно это звучит так, как будто у вас есть Служба А, которая должна запустить рабочий процесс, и этот рабочий процесс оказывается консольным приложением. на другом сервере. Если это так, я бы создал службу B, которая живет на том же сервере, что и консольное приложение. и сделать так, чтобы служба A выполняла вызов службы B с помощью WCF. Вы не хотите звонить напрямую, поскольку не хотите, чтобы ваш сервис блокировал результаты вашего консольного приложения.
Есть много хороших примеров выполнения вызовов в очереди между службами. Смотрите "вызовы в очереди" здесь. Если службе A требуется ответ от службы B об успешном или неудачном вызове, это вызов в очереди, возвращающийся в обратном направлении.
Если вы находитесь в домене Windows, вы можете использовать инструменты Sysinternal для выполнения удаленных вызовов процедур (RPC).
Sysinternals Suite: http://technet.microsoft.com/en-us/sysinternals/bb842062.aspx
Вот некоторые из полезных инструментов Sysinternal:
- psexec.exe - удаленно выполнить
- pskill.exe - убить удаленный процесс
- psservice.exe - запустить / остановить удаленный сервис
Если вы Linux, я часто просто устанавливаю OpenSSH, а затем SSH на другую машину. В Linux есть метод RPC, но я не знаком с ним.