Я пытаюсь распространять IIS Express с моим приложением. IIS Express будет обслуживать внешние веб-запросы через порт 80.
У меня нет проблем с запуском IIS Express, а также с обслуживанием внешних запросов, однако Microsoft в своей безграничной мудрости решила запускать IIS Express из окна консоли, а также из панели задач. Вы можете отключить элемент панели задач с помощью аргумента командной строки, но не в окне консоли.
Я хочу запустить IIS Express без отображения окна консоли. Я также хочу запустить IIS Express из службы Windows.
Выполнение следующего кода из моего приложения делает именно то, что я хочу:
Directory.SetCurrentDirectory(string.Format("{0}\\IIS Express", iisProgramDirectory));
process.EnableRaisingEvents = true;
//process.Exited += new EventHandler(process_Exited);
process.StartInfo.FileName = "iisexpress.exe";
process.StartInfo.Arguments = string.Format("\"/config:{0}webservice\\config\\applicationhost.config\"", dataDirectory);
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
//process.StartInfo.UserName = "Administrator";
//System.Security.SecureString securePwd = new System.Security.SecureString();
//string password = "**********";
//char[] pword = password.ToCharArray();
//for (int i = 0; i < pword.Length; i++)
//{
// securePwd.AppendChar(pword[i]);
//}
//process.StartInfo.Password = securePwd;
process.Start();
Очевидно, я работаю как администратор. IIS Express, по-видимому, должен работать с правами администратора для обслуживания внешних запросов, а также для прослушивания порта 80.
Моя служба Windows работает под учетной записью службы Windows, которая, как я полагаю, имеет полные права, но процесс IIS Express просто корректно завершается с кодом ошибки 0, когда я пытаюсь запустить его из службы Windows.
Я пробовал количество сценариев (как вы можете видеть из фрагмента кода), но, похоже, я не могу запустить IIS Express с помощью службы Windows И скрыть чертовски окно консоли.
Любые предложения будут оценены.