Приложение не удалось правильно инициализировать (0xc0000142) - PullRequest
0 голосов
/ 01 марта 2012

Я пытаюсь запустить notepad.exe (в качестве более простого теста) из веб-службы, используя process.Start ().Эта веб-служба развернута на IIS 5.1 в Windows XP (для разработки) и, вероятно, будет развернута на сервере Windows 2003 с IIS 6. Я использую этот код:

    [WebMethod]
    public String ReqFormImage(String qString)
    {
        _qString = qString;

        String imageLoc = @"http://localhost/MobileService/formImages/" + NameOfScreenshot(qString);

        Process myProcess = new Process();
        try
        {
            //Credentials
            myProcess.StartInfo.Domain = "domain";
            myProcess.StartInfo.UserName = "myUserName"; //local admin on development pc
            myProcess.StartInfo.Password = PasswordGenerate("removed");

            //StartInfo
            myProcess.StartInfo.WorkingDirectory = @"C:\WINDOWS\System32";
            myProcess.StartInfo.FileName = "notepad.exe";
            //myProcess.StartInfo.Arguments = qString;
            myProcess.StartInfo.UseShellExecute = false;
            myProcess.StartInfo.RedirectStandardInput = true;
            myProcess.StartInfo.RedirectStandardOutput = true;
            myProcess.StartInfo.RedirectStandardError = true;
            //myProcess.StartInfo.LoadUserProfile = false;

            myProcess.Start();
            myProcess.WaitForExit();
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
return imageLoc;
    }

У меня также естьimpersonate, установленный в true в web.config (я пробовал с и без моих учетных данных в файле конфигурации, а также с impersonate, установленным в false).Я также дал разрешение на чтение / выполнение для своего идентификатора пользователя, aspnet и учетной записи службы в notepad.exe.

Точка останова на myProcess.WaitForExit () вызывает всплывающее окно с сообщением «Не удалось правильно инициализировать приложение (0xc0000142). "Я посмотрел журнал событий, и больше никакой информации, кроме этой, нет.

В конечном итоге мне нужно иметь возможность запустить exe, выдавая себя за учетную запись, которая может быть жестко закодирована, или выдавать себя за пользователя, который обращается к сети.оказание услуг.Я знаю, что есть проблемы с открытием EXE-файла на стороне сервера графического интерфейса, но мне нужно, чтобы это работало.Я уверен, что это не лучшая практика, но у меня мало времени и я ищу обходной путь.На данный момент достаточно получить хотя бы блокнот для запуска.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 03 марта 2012

В IIS мне пришлось настроить веб-сервис для запуска скриптов и исполняемых файлов, а не только скриптов. Блокнот запускается сейчас, но без полноценного графического интерфейса. Я не думаю, что то, что мне нужно, возможно, но я решил то, что спросил.

...