2015-08-19 14 views
6

Czasami jest komputer, który nie ma usług IIS. Albo zostało wyłączone, albo nie zostało zainstalowane. W tym przypadku muszę włączyć go samodzielnie according to those steps.Programowo włącz (zainstaluj) IIS

Próbuję utworzyć aplikację, która sprawdzi, czy usługi IIS są włączone (zainstalowane), a jeśli nie, to ją włączy (zainstaluje).

Próbowałem zainstalować IIS przy użyciu .msi files from here, ale przed instalacją proszono mnie o wykonanie instalacji pod those stpes.

Próbowałem użyć Advanced Installer, ale najwyraźniej instalował IIS 8.0 Express, ale nadal utrzymuje IIS wyłączone.

enter image description here

Co muszę zrobić, aby umożliwić IIS programowo? Jest również do przyjęcia, jeśli będę musiał uruchomić plik instalacyjny IIS, aby to zrobić (nie znalazłem właściwego).

Odpowiedz

9

Możesz zainstalować IIS za pomocą wiersza poleceń. Poniższe polecenie zainstaluje IIS na Windows 8 (można zmodyfikować, aby dodać/usunąć pewne cechy To tylko komenda Użyłem w przeszłości.):

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

W języku C#, można utworzyć proces, który wykonuje to polecenie tak:

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

pkgmgr została zaniechana lat temu . Microsoft sugeruje zamiast tego używanie DISM/Online. –

+0

Fajne, ale problem, który znalazłem z DISM, wymaga ponownego uruchomienia komputera podczas instalacji IIS. Jeśli programowo instaluje się program IIS w celu zaoszczędzenia kłopotów z ręczną instalacją (co wydaje się być), nie wyobrażam sobie, aby restartowanie maszyny za każdym razem, gdy uruchomiono polecenie, jest pożądaną alternatywą. Nie natknąłem się na sposób instalacji usług IIS za pośrednictwem DISM bez restartu, ale jeśli istnieje sposób, aby to zrobić, chciałbym wiedzieć. –

+0

Czy przeszedłeś przełącznik/NoRestart? –

1

oznakujesz zapytanie z InstallShield więc wspomnieć, że nowsze wersje InstallShield mieć wsparcie umożliwiające funkcje systemu Windows:

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

Powiedział, że zazwyczaj nie lubią robić ponieważ jesteś naprawdę nachalny w konfiguracji komputera. Wolę napisać sprawdzenie, czy wymagane funkcje są zainstalowane i zablokować, jeśli nie są.

Inną myślą jest to, że ASP.NET 5.0 obsługuje teraz samo hosting, podobnie jak inne technologie, takie jak WCF w przeszłości. Może po prostu porzucić potrzebę IIS i zabić problem w ten sposób.

1

Informacje dotyczące korzystania z Zaawansowanego instalatora. Zostało zainstalowane oprogramowanie IIS Express, ponieważ wykorzystano wstępnie zdefiniowaną obsługę wymagań wstępnych. Powinieneś używać wcześniej zdefiniowanego wsparcia dla install Windows Feature Bundles.

Za pomocą tego wsparcia można łatwo wybrać, która funkcja systemu operacyjnego ma być włączona, a także ustawić niestandardowe warunki. Na naszym kanale YouTube można znaleźć przykłady/tutoriale: