Я пытаюсь запустить 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-файла на стороне сервера графического интерфейса, но мне нужно, чтобы это работало.Я уверен, что это не лучшая практика, но у меня мало времени и я ищу обходной путь.На данный момент достаточно получить хотя бы блокнот для запуска.
Спасибо за любую помощь.