Доступ к консольному приложению с другого компьютера - .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, но я не знаком с ним.

Другие вопросы по тегам