Ich habe ein WebApp-Installationsprogramm installiert alle seine Voraussetzungen, die auch IIS 7 enthält.Bessere Möglichkeit, IIS7 programmgesteuert zu installieren
Da IIS in einem Visual Studio-Installationsprojekt nicht als Voraussetzung erforderlich ist, habe ich den folgenden Code entwickelt, um IIS aus Code zu installieren (für Windows Vista und 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;
}
Dieser Code hat bis jetzt perfekt funktioniert. Meine einzige Sorge ist, dass der Installationsteil viel Zeit benötigt.
Jetzt habe ich die Möglichkeit, einige der Codes neu zu schreiben und die Benutzeroberfläche des Installationsprogramms zu ändern. Ich kam gerade zu diesem Teil und fragte mich, ob dies die einzige Lösung für die Installation von IIS aus dem Code ist, oder gibt es vielleicht einen besseren Weg, den ich nicht gefunden habe?
Ich bin nur neugierig zu wissen, was die anderen Möglichkeiten sind, IIS zu installieren. Antworten für Windows 8 werden ebenfalls geschätzt.
Und was ist mit Int-Ausgabe?dism gibt die Textwand zurück – Mike
@Mike Was ist damit? – i3arnon
Nun, wenn das programmatisch ist, wäre es praktisch, wenn das Ergebnis von ProcessEx.Run() einen Code zurückgibt. Dism gibt String zurück? Wie kann ich die Ausgabe leicht analysieren, um zu wissen, dass die Installation Erfolg/Misserfolg hatte, und wenn Fehler, den richtigen Fehlercode zu erhalten? – Mike