EDIT
Я добавил некоторую обработку ошибок в мой файл .vbs, и это действительно проблема с разрешениями (теперь я получаю «Ошибка отказа в доступе»). Однако указание моих учетных данных в теге web.config <impersonate>
, похоже, не имеет никакого эффекта.
Также при попытке передать мои учетные данные процессу через
p.StartInfo.Password = Misc.CreateSecurityString("password");
p.StartInfo.UserName = "admin";
Я получаю новую ошибку:
cscript.exe - Ошибка приложения
Приложение не удалось инициализировать
правильно (0xc0000142). Нажмите на ОК, чтобы
прекратить заявку.
Кричи, если знаешь, что это вызвало. ( Или просто наберите ... )
Спасибо за вашу помощь!
Фон
Я пытаюсь выполнить файл .vbs из пользовательского обработчика (.ashx). VBScript настраивает веб-приложение в iis 5.1.
Пока следующий код выполняется без ошибок
string sToRun = "C:\CreateIISApplication.vbs"
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = "cscript";
p.StartInfo.Arguments = sToRun;
p.Start();
// Do not wait for the child process to exit before
// reading to the end of its redirected stream.
// p.WaitForExit();
// Read the output stream first and then wait.
string sOutput = p.StandardOutput.ReadToEnd();
p.WaitForExit();
Задача
Моя проблема в том, что VBScript, похоже, вообще не работал. Когда я проверяю IIS, мое приложение не создается.
Когда я запускаю файл сценария непосредственно из командной строки, все работает правильно, и мое приложение отображается в IIS.
Устранение неисправностей
Я решил добавить некоторые операторы echo в файл .vbs, чтобы убедиться, что он работает. В командной строке все операторы выводятся правильно. При проверке строки sOutput я получаю сообщение заголовка, но ни одно из моих последующих сообщений.
Из C # - содержимое sOutput
Microsoft (R) Windows Script Host
Версия 5.7 Copyright (C) Microsoft
Корпорация. Все права защищены
Из командной строки
Microsoft (R) Windows Script Host
Версия 5.7 Copyright (C) Microsoft
Корпорация. Все права защищены
Hello
Так что я могу доказать (я думаю), что файл .vbs не проверяется и вызывается cscript. И если я вызываю cscript без ссылки на файл .vbs, я получаю справочную документацию. Так что что-то идет не так.
Есть идеи? Спасибо!