System.Diagnostics.Process.Start () генерирует сообщение об ошибке всплывающего окна приложения в журналах событий - PullRequest
1 голос
/ 07 апреля 2011

Я использую следующий фрагмент кода для выполнения IISReset на удаленных серверах с помощью веб-приложения Asp.Net. Веб-сайт размещен на компьютере с Windows Server 2003 с IIS 6.0, а удаленные серверы также работают под управлением Windows Server 2003 (IIS 6.0). Этот код работает абсолютно нормально в моей среде разработки и успешно выполняет сброс IIS на удаленных серверах, но когда я развернул его на живом сервере, он ничего не делает. Приложение практически не отвечает, когда я нажимаю кнопку, чтобы сбросить IIS на веб-странице и генерирую следующую ошибку в журнале событий .:

* Всплывающее окно приложения: iisreset.exe - Ошибка приложения: приложение не удалось правильно инициализировать (0xc0000142). Нажмите OK, чтобы закрыть приложение. *

string pass = CommonMethods.GetSecureAppSettings("priviledgedUserPwd");
    ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
    psi.UserName = CommonMethods.GetSecureAppSettings("priviledgedUser");
    psi.Password = pass.ToSecureString();
    psi.FileName = @CommonMethods.GetAppSettings("ExecutablePath") + "iisreset.exe";
    psi.WindowStyle = ProcessWindowStyle.Normal;
    psi.Arguments = server.IP;
    psi.RedirectStandardOutput = true;
    psi.UseShellExecute = false;
    System.Diagnostics.Process listFiles;
    listFiles = Process.Start(psi);
    StreamReader outPut = listFiles.StandardOutput;
    listFiles.WaitForExit(10000);
    if (listFiles.HasExited)
    {
        Logger.Audit(AUDIT_TITLE, outPut.ReadToEnd());
    }
    else
    {
        throw new Exception("Failed to start the process successfully");
    }
    return listFiles.ExitCode;

Здесь путь к исполняемому файлу - C: \ Windows \ System32, а привилегированный пользователь является членом группы администраторов, поэтому все разрешения уже имеются. Я также пытался подражать без посторонней помощи.

Пожалуйста, предложите, как исследовать эту проблему дальше.

Большое спасибо заранее.

...