2012-08-06 89 views
1

我需要檢查IISexpress是否已經在系統中運行或沒有。 如果沒有,那麼我需要啓動具有管理權限的IISExpress。在C#中使用管理員權限啓動IISExpress

要做到這一點,我用下面的代碼

var processes = Process.GetProcessesByName(
         settings.Default.IISExpressProcessName).ToList(); 
if (processes.Count != 0) return; 
var pass = new SecureString(); 
foreach (char chr in settings.Default.Password) 
{ 
    pass.AppendChar(chr); 
} 

var iisExpress = Environment.ExpandEnvironmentVariables(
         settings.Default.IISExpressExecutableFilePath); 
Process.Start(new ProcessStartInfo 
{ 
    FileName = iisExpress, 
    UseShellExecute = false, 
    CreateNoWindow = true, 
    Verb = "runas", 
    //UserName =settings.Default.UserName, 
    //Password = pass, 
    Arguments = settings.Default.IISExpressArguments 
}); 

這裏的問題是,它並沒有在管理模式下啓動IISExpress。

任何人都可以幫我嗎?

+0

你能照顧一點,並確保粘貼到你的問題的任何代碼樣本的格式是否正確?請閱讀:http://stackoverflow.com/editing-help#code謝謝。 – Kev 2012-08-06 13:22:02

回答

2

只是你的代碼有點改變

Process process = Process.Start(new ProcessStartInfo() 
    { 
    FileName = IIS_EXPRESS, 
    Arguments = arguments.ToString(), 
    RedirectStandardOutput = true, 
    UseShellExecute = true, 
    CreateNoWindow = true, 
    Verb = "runas" 
    }); 

本應做的伎倆