2012-08-06 104 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" 
    }); 

本应做的伎俩