asp.net 控制windows服務

一劍平江湖發表於2013-01-22
 asp.net 控制windows服務 最近做一個小的專案,經理要求winform與web都可操作。於是將其做成服務,winform下呼叫很簡單。asp.net下大部分過程是一樣的。但需要涉及到使用者的許可權,需要在web.config檔案中做下配置。
1、為網站新增新的引用,加入:system.serviceproces.dll
2、在程式碼檔案頭部加如:using System.ServiceProcess;
3、服務的啟動使用如下程式碼:
         ServiceController sc = new ServiceController("service1");
        if (sc.Status == ServiceControllerStatus.Stopped)
        {
            sc.Start();
        }
     4、服務的關閉使用如下程式碼:
        ServiceController sc = new ServiceController("service1");
        if (sc.Status == ServiceControllerStatus.Running)
        {
            sc.Stop();
        }
     5、服務的控制許可權的解決辦法
        windows2003等伺服器系統都提供了完善的許可權訪問機制,這就是我為什麼不用前面說過的在asp.net 中呼叫另一個程式的辦法來通過net 命令啟動和停止服務。因為首先用net命令顯然比較麻煩,而呼叫新程式的發放程式執行依然是在aspnet的使用者下(通過網頁訪問的預設使用者),當網頁關閉,會話結束時間到達就會自動釋放該使用者執行的相關程式。而net命令同樣需要相應許可權。asp.net 中可以在web.config的下新增
    從而解決使用者的登入許可權問題。
      以上五步就可以完成對伺服器服務的控制了!
<system.web>
    <identity impersonate="true" userName="admin" password="admin"/>

相關文章