1

我需要检查 IISexpress 是否已经在系统中运行。如果没有,那么我需要以管理员权限启动 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。

有人能帮我一下吗?

4

1 回答 1

2

只需将您的代码更改为

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

这可以解决问题

于 2012-10-23T11:35:39.980 回答