使用C#中的管理员权限启动IISExpress

时间:2012-08-06 12:57:26

标签: .net iis-express user-permissions

我需要检查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。

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

只需将您的代码稍微更改为

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

这应该做的伎俩