開始

2013-12-21 25 views
1

我已經創建了啓動\一站式窗口服務
一個Windows應用程序現在,當我試圖開始從我的應用程序\停止SQ-服務器引擎拋出異常 當我運行我的應用程序作爲管理員SQL Server引擎允許它作品 現在我可以使用app.manifest以管理員身份運行我的應用程序,但問題是我的客戶端沒有管理員權限 我的應用程序需要什麼類型的權限以及如何執行此操作?開始

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. 你的程序將需要在備用憑據下運行

對於第三種選擇,至少可以通過幾種不同的方式完成:

  1. 右鍵單擊應用程序,它會給你一個菜單 選項作爲另一個用戶運行。此選項要求有人在此處輸入 以在每次以這種方式運行應用程序 時輸入憑據。

  2. 爲某人在 應用程序中輸入自己的憑據,然後在 開始/停止服務時在應用程序中模擬這些憑據。這種方法可以讓你給 他們選擇保存他們的憑據以供將來使用(不是說 這是個好主意)。

+0

第二個是最好的但我該怎麼做? –

+0

@amshammout很好的問題。如果谷歌搜索沒有引導你到任何地方,那麼你可能會問服務器故障......這是他們的專業領域。 – BVernon