У меня есть установщик webapp, который устанавливает все его предпосылки, включая IIS 7.Лучший способ установить IIS7 программно
Поскольку IIS не является обязательным условием в проекте установки Visual Studio, я придумал следующий код для установки IIS из кода (для ориентации на Windows Vista и 7).
private string ConfigureIIS7()
{
string output = string.Empty;
if (Environment.OSVersion.ToString().Contains("Microsoft Windows NT 5")) // Its WindowsXP [with or without SP2]
{
MessageBox.Show("IIS 6.0 is not installed on this machine. Please install the same and proceed with the installation or contact your administrator","Installer",MessageBoxButtons .OK ,MessageBoxIcon .Warning);
throw new System.Exception("IIS 6.0 is not installed on this machine.");
}
else
{
string CmdToExecute;
CmdToExecute = "cmd /c start /w pkgmgr /l:log.etw /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-Security;IIS-BasicAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI";
Process prRunIIS = new Process();
prRunIIS.StartInfo = new ProcessStartInfo("cmd.exe", CmdToExecute);
prRunIIS.StartInfo.UseShellExecute = false;
prRunIIS.StartInfo.RedirectStandardOutput = true;
prRunIIS.StartInfo.CreateNoWindow = true;
prRunIIS.Start();
prRunIIS.WaitForExit();
output = prRunIIS.StandardOutput.ReadToEnd();
}
return output;
}
Этот код отлично работает до сих пор. Меня беспокоит только то, что часть установки занимает значительное время.
Теперь у меня есть возможность переписать некоторые коды и изменить пользовательский интерфейс установщика. Я только что пришел к этой части и задался вопросом, было ли это единственным решением для установки IIS из кода или может быть какой-то лучший способ, которого я не нашел?
Мне просто интересно узнать, какие другие способы установить IIS. Также приветствуются ответы, предназначенные для Windows 8.
А как получить вывод int?рама возвращает стену текста – Mike
@Mike, что с этим? – i3arnon
Ну, если это программный путь, это было бы convienent, если результат вашего ProcessEx.Run() возвращает код. Dism возвращает строку правильно? Как я могу легко разобрать вывод, чтобы знать, что установка была успешной/неудачной и если ошибка, чтобы получить правильный код ошибки? – Mike