Как запустить IIS Express как процесс, запускаемый через службу Windows

Я пытаюсь распространять 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 И скрыть чертовски окно консоли.

Любые предложения будут оценены.

11
задан Brettski 24 June 2011 в 14:33
поделиться

0 ответов