반응형
using System.Diagnostics;
string file = @"e:\down\HelloWorld.exe";
Process.Start(file);

C#어플리케이션에서 수행하면 file에 지정된 파일이 정상동작한다.
그러나 asp.net상에서 수행하면 백그라운드에서 수행된다.
이유는 어플리케이션과 asp.net의 수행권한에서 오는 차이로 만약 asp.net의 실행권한을 administrator(로그인된 계정)으로 
맞춰준다면 asp.net상에서도 수행될 것이다. 그러나 보안에 취약해지는 단점을 가지고 있기 때문에 권장할 방법은 아니다.
일단은 asp.net상에서 수행할경우 백그라운드에서 수행은 되므로(엄밀히 말하면 iis계정에서 실행되는 것이지만)
배치파일등을 호출하는 용도등으로 사용할만 하다.

※  Process.Start()는 서버에서만 동작하므로 클라이언트상에서 수행할 수는 없다.
    보통 클라이언트에서 프로세스를 수행하도록 하는 방법은 ActiveX를 사용해서 주로 해결한다.
    (그외의 방법이 있는지는 모르겠고...)

+ Recent posts