Estoy tratando de distribuir IIS Express con mi aplicación. IIS Express atenderá solicitudes web externas en el puerto 80.Cómo ejecutar IIS Express como un proceso iniciado a través de un servicio de Windows
No tengo problemas para ejecutar IIS Express y atender solicitudes externas, sin embargo, Microsoft, en su sabiduría infinita, decidió ejecutar IIS Express desde una ventana de la consola y un elemento de la bandeja del sistema . Puede desactivar el elemento de la bandeja mediante un argumento de línea de comando pero no la ventana de la consola.
Quiero ejecutar IIS Express sin que se muestre la ventana de la consola. También quiero ejecutar IIS Express desde un servicio de Windows.
Ejecutar el siguiente código de mi aplicación hace exactamente lo que quiero:
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();
Obviamente estoy funcionando como administrador. IIS Express aparentemente necesita ejecutarse con privilegios de administrador para atender solicitudes externas y escuchar en el puerto 80.
Mi servicio de Windows se ejecuta bajo la cuenta de servicio de Windows, que creo que tiene privilegios completos, pero el proceso IIS Express simplemente sale con gracia código de error de 0 cuando intento ejecutarlo desde el servicio de Windows.
He intentado una serie de escenarios (como se puede ver en el fragmento de código) pero parece que no hay forma de que pueda ejecutar IIS Express utilizando el servicio de Windows Y ocultar la ventana de la consola de darn.
Cualquier sugerencia será apreciada.
PS. también puedes aceptar más respuestas, a las preguntas que has hecho. –