2013-12-21 2 views
1

Windows 응용 프로그램을 시작 \ Windows 서비스를 중지하는
지금 내 응용 프로그램에서 sq-server 엔진을 중지하려고 시도했을 때 예외가 발생합니다. 관리자 권한으로 응용 프로그램을 실행할 때 작동 이제 app.manifest를 사용하여 관리자 권한으로 응용 프로그램을 실행할 수 있지만 문제는 클라이언트에 관리자 권한이 없다는 것입니다. 내 응용 프로그램에 필요한 권한 유형 및 방법은 무엇입니까?start SQL 서버 엔진 권한

public static void start() 
    { 
     ServiceController sc = new ServiceController(ServiceName, ServerName); 
     sc.Start(); 
     sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running); 
    } 

    public static void stop() 
    { 
     ServiceController sc = new ServiceController(ServiceName, ServerName); 
     sc.Stop(); 
     sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped); 
    } 

답변

1

귀하의 앱은 앱을 실행하는 사용자의 권한으로 제한됩니다. 그들에게 무언가를 할 수있는 권리가 없다면, 여러분의 신청서도 마찬가지입니다. 귀하의 클라이언트는 관리자가 아니므로 귀하의 앱을 작동시키기 위해서는 관리자가 서비스 시작/중지에 필요한 권한을 관리자에게 부여해야합니다. 다음과 같은 요구

하나가 발생합니다 :

  1. 사용자는 관리자 권한이
  2. 관리자가 시작 사용자 권한을 할당 할 필요가
  3. / 서비스
  4. 프로그램이 필요합니다
  5. 을 중지 얻을 필요가있다 대체 자격 증명으로 실행해야합니다.

세 번째 옵션의 경우 적어도 두 가지 방법으로 수행 할 수 있습니다.

  1. 응용 프로그램을 Shift- 오른쪽 클릭하면 다른 사용자로 실행되도록 메뉴 옵션이 제공됩니다. 이 옵션을 사용하면 사용자가이 방법으로 응용 프로그램을 실행할 때마다 자격 증명을 입력해야합니다.

  2. 누군가가 자신의 자격 증명을 응용 프로그램에 입력 한 다음 서비스를 시작/중지 할 때 응용 프로그램에서 가장 할 수있는 기능을 추가하십시오. 이 방법을 사용하면 에 나중에 사용하기 위해 자격 증명을 저장할 수있는 옵션을 제공 할 수 있습니다 (비록 좋은 생각인데 이 아님).

+0

두 번째는 최고이지만 어떻게 할 수 있습니까? –

+0

@amshammout 좋은 질문입니다. Google 검색을 통해 어느 부분으로 이어지지 않으면 서버 오류에 대해 물을 수 있습니다. – BVernon