我試圖將IIS Express與我的應用程序一起分發。 IIS Express將在端口80上提供外部Web請求。如何將IIS Express作爲通過Windows服務啓動的進程運行
我在運行IIS Express以及服務外部請求方面沒有問題,但Microsoft以其無限智慧決定從控制檯窗口以及系統托盤項目運行IIS Express 。您可以通過命令行參數而不是控制檯窗口禁用托盤項目。
我想在不顯示控制檯窗口的情況下運行IIS Express。我也想從Windows服務運行IIS Express。
從我的應用程序中運行下面的代碼不正是我想要的:
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進程只是優雅地退出當我嘗試從Windows服務運行它時,錯誤代碼爲0。
我已經嘗試了很多場景(正如你可以從代碼片斷中看到的那樣),但似乎沒有辦法讓IIS Express運行使用我的Windows服務並隱藏了darn控制檯窗口。
任何建議,將不勝感激。
PS。你能否接受更多的答案,以及你提出的問題。 – 2011-05-23 04:06:45