2015-08-19 22 views
6

A volte c'è un PC che non ha IIS. O disabilitato o non installato. In questo caso devo abilitarlo da solo according to those steps.Abilita (installa) al livello di programmazione IIS

Sto provando a creare un'applicazione che verificherà se IIS è abilitato (installato), e se non lo abiliterà (installarlo).

ho provato ad installare IIS utilizzando .msi files from here, ma mi chiede di seguire those stpes prima dell'installazione.

Ho provato a utilizzare Advanced Installer ma a quanto pare l'installazione di IIS 8.0 Express ma mantiene IIS disabilitato.

enter image description here

Che cosa devo fare per attivare IIS di programmazione? È anche accettabile se ho bisogno di eseguire un file di installazione di IIS per farlo (non ho trovato quello giusto).

risposta

9

È possibile installare IIS tramite la riga di comando. Il seguente comando verrà installato IIS su Windows 8 (è possibile modificare questo per aggiungere/rimuovere alcune caratteristiche E 'solo un comando che ho usato in passato.):

PkgMgr:

start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-NetFxExtensibility45;IIS-ASPNET45;IIS-NetFxExtensibility;IIS-ASPNET;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI

DISM :

START /WAIT DISM /Online /Enable-Feature /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-ASP /FeatureName:IIS-ASPNET /FeatureName:IIS-BasicAuthentication /FeatureName:IIS-CGI /FeatureName:IIS-ClientCertificateMappingAuthentication /FeatureName:IIS-CommonHttpFeatures /FeatureName:IIS-CustomLogging /FeatureName:IIS-DefaultDocument /FeatureName:IIS-DigestAuthentication /FeatureName:IIS-DirectoryBrowsing /FeatureName:IIS-FTPExtensibility /FeatureName:IIS-FTPServer /FeatureName:IIS-FTPSvc /FeatureName:IIS-HealthAndDiagnostics /FeatureName:IIS-HostableWebCore /FeatureName:IIS-HttpCompressionDynamic /FeatureName:IIS-HttpCompressionStatic /FeatureName:IIS-HttpErrors /FeatureName:IIS-HttpLogging /FeatureName:IIS-HttpRedirect /FeatureName:IIS-HttpTracing /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-IISCertificateMappingAuthentication /FeatureName:IIS-IPSecurity /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-LegacyScripts /FeatureName:IIS-LegacySnapIn /FeatureName:IIS-LoggingLibraries /FeatureName:IIS-ManagementConsole /FeatureName:IIS-ManagementScriptingTools /FeatureName:IIS-ManagementService /FeatureName:IIS-Metabase /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-ODBCLogging /FeatureName:IIS-Performance /FeatureName:IIS-RequestFiltering /FeatureName:IIS-RequestMonitor /FeatureName:IIS-Security /FeatureName:IIS-ServerSideIncludes /FeatureName:IIS-StaticContent /FeatureName:IIS-URLAuthorization /FeatureName:IIS-WebDAV /FeatureName:IIS-WebServer /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-WebServerRole /FeatureName:IIS-WindowsAuthentication /FeatureName:IIS-WMICompatibility /FeatureName:WAS-ConfigurationAPI /FeatureName:WAS-NetFxEnvironment /FeatureName:WAS-ProcessModel /FeatureName:WAS-WindowsActivationService

In C#, è possibile creare un processo che esegue questo comando in questo modo:

string command = "the above command"; 
ProcessStartInfo pStartInfo = new ProcessStartInfo("cmd.exe", "/c " + command); 
Process p = new Process(); 
p.StartInfo = pStartInfo; 
p.Start(); 
+0

PkgMgr è stata sconsigliata anni fa . Microsoft suggerisce invece di utilizzare DISM/Online. –

+0

Punto giusto, ma il problema che ho riscontrato con DISM è che richiede il riavvio del computer durante l'installazione di IIS. Se si sta eseguendo l'installazione di IIS a livello di codice per salvare il fastidio di un'installazione manuale (che sembra essere il caso), non riesco a immaginare di riavviare la macchina ogni volta che si esegue il comando è un'alternativa desiderabile. Non ho trovato un modo per installare IIS tramite DISM senza un riavvio, ma se c'è un modo per farlo, mi piacerebbe sapere. –

+0

Hai passato l'opzione/NoRestart? –

1

si etichetta la tua domanda con InstallShield quindi dire che le versioni successive di InstallShield hanno il supporto per abilitare funzionalità di Windows:

Enabling Windows Roles and Features During a Suite/Advanced UI Installation

Detto questo, non mi piace fare in genere questo perché sei davvero invadente con la configurazione del PC. Preferisco creare un controllo per verificare che le funzionalità richieste siano installate e bloccare se non lo sono.

Un'altra considerazione è che ASP.NET 5.0 ora supporta l'auto hosting come altre tecnologie come WCF in passato. Potrebbe essere sensato abbandonare semplicemente la necessità di IIS e uccidere il problema in questo modo.

1

Per quanto riguarda la tua esperienza con Advanced Installer. Hai finito con IIS Express installato perché hai utilizzato il nostro supporto predefinito per i prerequisiti. Avresti dovuto usare il supporto predefinito per install Windows Feature Bundles.

Utilizzando questo supporto è possibile selezionare facilmente quale funzione del sistema operativo deve essere abilitata e anche impostare condizioni personalizzate. Sul nostro canale YouTube si possono trovare esempi/tutorial: