2011-11-18 2 views
2

나는 많은 수의 C# 셸 명령 호출, 응용 프로그램, 배치 파일 등을 처리했습니다. 다른 날 저는 현재 웹 사이트 응용 프로그램에서 실행되는 실행 파일 인 경우 문제가 될 것인지 묻는 메시지가 표시됩니다. 인트라넷상의 다른 서버로 이동합니다. 즉, 웹 사이트 앱과 Process.Start (...)를 통해 실행중인 실행 파일은 현재 같은 상자에 있습니다. 모두 좋은 점이 있습니다. 이제 두 서버에서 두 서버를 분리하고자합니다.C# - 명령 줄 응용 프로그램 호출

서버 (웹 사이트가있는 곳)에서 앱 (서버 B에 있음)을 실행하는 데 쓸데없는 시도를했습니다. 나는 이것을하기 위해 아직 십자가를 달리지 않은 방법이 있습니까?

감사

+4

시도가 무의미한 이유는 무엇입니까? 당신은 무엇을 시도했고 어떻게 실패 했습니까? – David

+1

소켓을 사용하십시오. http를 통해 찌를 수도 있습니다. –

+0

원격 컴퓨터의 다른 프로세스와 통신하는 표준 방법은 WCF 또는 다른 ipc 메커니즘을 사용하고 있습니다. –

답변

4

PsExec는 최소한의 코딩 한 방법입니다. System.Diagnostic.Process 사용하면이 명령을 호출 할 수 있습니다

psexec \\ServerB (path)\myapp.exe arg0 arg1 ... 
0

서버 B에서 응용 프로그램을 실행하여 서버 A의 프로세스를 제어하려면 원격으로 어떻게 든 제어 얻을 것이다 서버 B에서 실행중인 응용 프로그램을해야합니다.

예를 들어, 서버 A가 유닉스를 실행한다고 가정 해 봅시다. 그러면 ssh를 사용하여 서버 A에 연결하고 인증 한 다음 쉘에서와 같이 프로세스와 기타 등을 제어 할 수 있습니다. 서버 A가 ssh 연결을 허용하지 않으면 서버 A에서 실행중인 자신의 응용 프로그램을 작성하여 서버 B의 응용 프로그램에서 오는 연결 및 명령을 수신 할 수 있습니다.

현재 설정과 왜 응용 프로그램을 서버 A에서 서버 B로 전환 할 것인가에 대해 조금 더 많은 정보가 도움이 될 것입니다.

0

오스틴의 psexec에의 접근 방식은 아마도 원격 시스템에서 EXE 파일을 실행하는 가장 쉬운 방법입니다,하지만 당신은 잠재적으로 더 강력한 솔루션을 고려할 수 있습니다 :

당신은 당신의 명령 줄 응용 프로그램을 수정할 수

서비스로 실행을 WCF (binaryXML/TCP 또는 XML/HTTP) 호출을 통해 작업 및/또는 데이터 요청에 응답 할 수 있습니다.