2009-03-26 4 views
3

내부 사이트에서 실행하려는 개발자 도구가 있습니다. 프로젝트의 소스 코드를 스캔하여 DB에 저장합니다. 사용자가 사이트에 가서 프로젝트를 선택하고 실행을 원할 수 있기를 바랍니다.ASP.Net 페이지에서 도구를 실행하는 가장 좋은 방법

프로젝트가 커질 수 있기 때문에 코드를 사이트에 업로드하고 싶지 않습니다. 자신의 컴퓨터에서 로컬로 어셈블리를 실행할 수 있기를 원합니다. 이 작업을 수행하는 쉬운 방법이 있습니까?

편집 : 당분간은 VS2005에서 수행해야합니다.
EDIT 2 : TrendMicro's Housecall과 비슷한 기능을 찾고 있습니다. 나는 검사가 로컬로 실행하기를 원하지만 결과는

답변

3

기본적으로 웹 서버를 통해 배포되는 ClickOnce 프로젝트 (winform/wpf) (본질적으로 일반 클라이언트 응용 프로그램)를 사용할 수 있습니다. 클라이언트에서 필요한 모든 작업을 수행 할 수 있습니다. VS2005/VS2008이 "게시"로이 (winform/wpf의 경우) - 브라우저 (또는 적어도 일부 브라우저 ;-p)에서 인식되는 ".application"파일을 생성합니다.

은 Silverlight와 동일한 작업을 수행 할 수 있지만 더 엄격한 샌드 박스 등이 있습니다. 웹 서버에 모든 db 작업을 수행하도록 요청해야합니다.

+0

이것은 결과를 수락하고 사용자가 webservice에서 생성 된 페이지로 이동하게 webservice를 사용하여 가능한 솔루션처럼 보인다 제출하기 전에 결과를 확인하십시오. –

+0

글쎄, (html) 웹 서버와 웹 서비스가 데이터를 공유하게하려면 아마도 db에 커밋해야 할 것입니다.하지만 그렇습니다. 또한 클라이언트 응용 프로그램에서 검사를 수행하고 커밋 할 수도 있습니다. –

1

난 당신에게 원하는처럼

는 소리 자신의 컴퓨터에 로컬로 내 조립 을 실행할 수 있도록하려면 웹 페이지에 표시 할 도구를 다운로드하여 로컬 컴퓨터에서 실행하면 효과가 있습니까?

+0

그게 작동합니까, 질문은 어떻게 그들이 그것을 다운로드 한 후 사이트에서 도구를 호출합니까 –

0

모든 코드는 위치 및 권한이 지정된 파일을 검색 할 수 있습니다. 웹 사이트가 다른 컴퓨터에서 exe를 열고 웹 서버에있는 파일을 실행하고 액세스 할 수있게하려면 무시 무시하게 낮은 수준의 보안이 필요합니다.이 보안 수준은 전체 시스템이 실제 공격에 완전히 개방되어 있음을 의미합니다. 시스템이 방화벽 뒤에 있기 때문에 외부 intererance로부터 보호된다면 코드에 대한 사용 권한을 줄이고 코드는 적게 보길 원할 것입니다. 당신은 지정된 디렉토리를 사용 할 수 있지만

는 메모장 다음 예제는 A 시스템에 EXE 시도를 실행하려면뿐만 아니라

ProcessStartInfo를의 PSI = 새로운 ProcessStartInfo를 ("notepad.exe를");
psi.WindowStyle = ProcessWindowStyle.Hidden;

프로세스 p = 새 프로세스(); p.EnableRaisingEvents = true; p.Exited + = 새 EventHandler (ExitHandlerToKillProcess); p.StartInfo = psi; p.Start();

그리고 완료되면 프로세스를 종료하지 마십시오. 교대로 자바 스크립트를 사용하십시오. 어느 쪽이든 보안 권한을 감시하고이를 수행 할 때의 위험을 기억하십시오.

+0

이 때문에 http://housecall.trendmicro.com/과 같은 솔루션을 찾으려고합니다. –

0

아마도 프로젝트 데이터 처리 및 추출을 수행하는 일종의 명령 줄 도구 나 서비스를 작성하게 될 것입니다. 그런 다음 웹 서버와 명령 줄 도구 모두에 공통 액세스 권한이있는 프로젝트를 업데이트/등록하는 페이지를 사용합니다. 그런 다음 지정된 시간에 수동으로 또는 cron 또는 유사한 메커니즘을 통해 데이터를 데이터베이스로 추출하십시오. 일단 이것을 사용하면 웹 사이트를 사용하여 마지막 추출 시간과 추출 된 데이터를 표시합니다.

프로젝트/최종 사용자가 다른 서브넷에 있으면 최종 사용자가 도구를 실행 한 다음 데이터를 데이터베이스에 게시해야합니다.

관련 문제