Tôi đang cố phân phối IIS Express bằng ứng dụng của mình. IIS Express sẽ cung cấp các yêu cầu web bên ngoài trên cổng 80.Cách chạy IIS Express như một quá trình được bắt đầu qua Dịch vụ Windows
Tôi không gặp vấn đề gì khi chạy IIS Express cũng như phục vụ các yêu cầu bên ngoài, tuy nhiên Microsoft trong trí tuệ vô hạn của họ đã quyết định chạy IIS Express từ cửa sổ bảng điều khiển cũng như mục khay hệ thống . Bạn có thể vô hiệu hóa mục khay bằng một đối số dòng lệnh nhưng không phải là cửa sổ bảng điều khiển.
Tôi muốn chạy IIS Express mà không có cửa sổ bảng điều khiển được hiển thị. Tôi cũng muốn chạy IIS Express từ một dịch vụ windows.
Chạy đoạn mã sau từ bên trong ứng dụng của tôi thực hiện chính xác những gì tôi muốn:
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();
Rõ ràng là tôi đang chạy as Administrator. IIS Express dường như cần chạy với quyền quản trị để phục vụ các yêu cầu bên ngoài cũng như lắng nghe trên cổng 80.
Dịch vụ cửa sổ của tôi chạy trong tài khoản Windows Service mà tôi cho là có đầy đủ đặc quyền nhưng quá trình IIS Express chỉ thoát ra một cách duyên dáng với mã lỗi của 0 khi tôi cố gắng chạy nó từ dịch vụ windows.
Tôi đã thử một số tình huống (như bạn có thể thấy từ đoạn mã) nhưng dường như không có cách nào tôi có thể chạy IIS Express bằng dịch vụ cửa sổ của mình VÀ ẩn cửa sổ bảng điều khiển darn.
Mọi đề xuất sẽ được đánh giá cao.
PS. bạn cũng có thể chấp nhận nhiều câu trả lời hơn cho các câu hỏi bạn đã hỏi không. –