Internet Information Server (IIS)
Eintrag zuletzt aktualisiert am: 02.12.2015
Webserver, MailServer und Newsserver im Rahmen von Windows Server sowie
Windows XP und
Windows 2000 Workstation. Wird ab
Windows Server 2003 als "Web Application Server" bezeichnet.
Server oder Service?
Der Internet Information Server (IIS) ist der
Webserver, den Microsoft als optionale Komponente mit allen Betriebssystemen seit
Windows 2000 ausliefert. Offiziell steht die Abkürzung IIS inzwischen nicht mehr für Internet Information Server, sondern für Internet Information Services, um zu deklarieren, das der IIS kein eigenständiges Produkt, sondern ein Teil von Windows ist. In Entwicklerkreisen ist aber die Sprech-weise "Server" immer noch weiter verbreitet und so hält es auch der Autor dieses Buchs. Aber auch Micro-soft selbst verwendet immer noch auf vielen Websites Server. Bei
Google sind beide Begriff etwa gleich oft zu finden: Internet Information Server (1.300.000 Treffer bei
Google) und Internet Information Services (1.360.000 Treffer bei
Google).
Versionsgeschichte
IIS 1.0: zusatz für Windows NT 3.51
IIS 2.0: in Windows NT 4.0 enthalten
IIS 3.0: in Windows NT 4.0
Service Pack 2 enthalten (erste Version mit den
Active Server Pages (ASP))
IIS 4.0: in Windows NT 4.0 Option Pack enthalten
IIS 5.0: in
Windows 2000 enthalten (nun „Microsoft Internet Information Services“ statt „Microsoft Internet Information Server“)
IIS 5.1: in
Windows XP Professional + Windows MCE enthalten
IIS 6.0: in
Windows Server 2003 +
Windows XP x64 Edition enthalten (erste modularisierte Version)
IIS 7.0: in
Windows Vista +
Windows Server 2008 enthalten
IIS 7.5: in
Windows Server 2008 R2 +
Windows 7 enthalten
IIS 8.0: in
Windows Server 2012 + Windows 8 enthalten
IIS 8.5: in
Windows Server 2012 R2 +
Windows 8.1 enthalten
IIS 10.0: in
Windows Server 2016 +
Windows 10 enthalten (mit HTTP/2)
Der IIS wird auch in ASP
.NET 3.5 weiterhin der meistgenutzte
Webserver für den Betrieb von
ASP.NET-Webanwendungen bleiben. Der IIS wird auch in ASP
.NET 3.5 weiterhin der meistgenutzte
Webserver für den Betrieb von
ASP.NET-Webanwendungen bleiben. Die Nutzung des IIS und des
Microsoft SQL Servers als
Datenbank ist die klassische Variante zur Webprogrammierung auf der Windows-Plattform. Einige Autoren sprechen von
WIMA (Windows, Internet Information Server,
Microsoft SQL Server/
MSDE,
ASP.NET) als Alternative zu L
AMP (
Linux,
Apache,
MySQL,
PHP).
ASP.NET integriert sich in Form eines
ISAPI-Filters (aspnet
filter.dll) und einer ISAPI-Erweiterung (aspnetisapi.dll) in den IIS. Die Dateierweiterungen .aspx, .ascx, .ashx, .asmx, .asax, .axd, .config, .cs, .vb u.a. Werden mit der
ISAPI-Erweiterung verbunden.
IIS 7.0
Der
Webserver Internet Information Server und die Webplattform
ASP.NET gingen trotz vieler Gemeinsamkeiten bei der Konfiguration bisher eigene Wege. Nun vermählt Microsoft mit IIS 7.0 die beiden und stellt sie auf eine gemeinsame Basis. Gleichzeitig baut Microsoft den einst als reiner
Webserver zur Welt gekommenen IIS zum Anwendungsserver aus. Microsoft nennt seinen
Webserver Internet Information Server (IIS) 7.0 [1] einen komponentenbasierten Server, weil er aus einzelnen unabhängigen
Softwarekomponenten zusammengebaut ist. Das bietet den Vorteil, dass nur die wirklich benötigten Funktionen installiert werden müssen. Anders als der monolithische Vorgänger IIS 6.0, besteht IIS 7.0 aus einem kleinen
Webserverkern (Web Core Server) und mehr als 40 IIS-Modulen für
Netzwerkprotokolle, Protokollierung, Konfiguration,
Authentifizierungsverfahren und Diagnose.
Der Aufbau aus Komponenten zeigt sich bereits beim Setup: Bei der Installation des IIS auf einem Longhorn-Server mithilfe des Add Roles
Wizard fordert Windows als Grundlage die Installation des
Windows Activation Service (
WAS).
WAS aber ist in der neuen Windows-Generation der Systembaustein, der für den IIS die Anwendungspools und
Prozesse verwaltet.
In dem folgenden Installationsfenster kann der Administrator sehr viel genauer als in der Vergangenheit die einzurichtenden Funktionen auswählen. Neben Frameworks wie ASP,
ASP.NET,
CGI und
ISAPI lassen sich in den Bereichen „HTTP-Features“, „Health and Diagnostics“, „Security“ und „Management Tools“ die gewünschten Module selektieren. Im Bereich Sicherheit sind verschiedene
Authentifizierungsverfahren wie zum Beispiel Basic, Windows, Digest oder
Zertifikate wählbar. Bei den Management-Diensten steht unter anderem zur Wahl, ob sich IIS 7.0 auch mit den Verfahren eines IIS, also mit Konsole, Skript oder per
WMI verwalten lassen soll und ob eine Fernverwaltung des IIS über einen Management-Service erlaubt sein soll.
Die komponentenorientierte Architektur erlaubt auf jeder Ebene (
Webserver, Website, Anwendung oder Verzeichnis) Modulsätze zu erstellen. So ist so beispielsweise möglich, einen
Webserver zu betreiben, der ausschließlich Windows-
NTLM-
Authentifizierung, statische Webseiten, Kompression und Protokollierung beherrscht.
Im Hinblick auf Sicherheit reduziert dies die Angriffsfläche und erhöht die Sicherheit des
Webservers gegenüber dem IIS 6.0, der nur für die Anwendungsentwicklungsframeworks eine Möglichkeit zum Deaktivieren von Merkmalen bot. Neben höherer Sicherheit ist von einem auf die notwendigen Module reduzierten
Webserver auch eine bessere Leistung zu erwarten.
Installieren lässt sich IIS 7.0 auf Windows
Longhorn Servern sowie den Home-Premium-, Business- und Ultimate-Varianten von
Windows Vista. Auf keiner Plattform gehört IIS zur Standardinstallation, sondern ist immer eine Option, die nach dem Einrichten des Betriebssystems zu aktivieren ist. Bei
Windows Vista in der Systemsteuerung, beim Longhorn-Server mithilfe des Rollenassistent. Der IIS 7.0 wird nicht zu 100%-Kompatibel zu Vorgängerversionen sein (siehe Kasten "Kompatibilität zu vorherigen Versionen").
Der IIS war bisher ein Web-, Datei-, Mail- und Newsserver. Ab Version 7.0 wird der IIS auch
TCP,
MSMQ und Named Pipes verstehen und damit zum allgemeinen Host für die
Windows Communication Foundation werden. Neben dem bereits aus der Vorgängerversion bekannten Kernel-Mode
Listener HTTP.sys installiert der IIS 7.0 die
Listener NET.
TCP, NET.PIPE and NET.
MSMQ. Beim Eintreffen einer Anfrage in einem der
Listener prüft der Windows Activation Server (
WAS), ob es bereits einen Arbeitsprozess gibt, der die Anfrage bearbeiten kann. Sofern noch keiner vorliegt, erzeugt
WAS einen passenden Prozess. Der Aktivierungsdienst kann auf Wunsch verschiedene Protokolle in einem Arbeitsprozess bedienen. Die Anwendungspools dieses Dienstes besitzen ähnliche Eigenschaften wie die IIS 6.0-Anwendungspools, zum Beispiel Prozessidentität oder Recycling-Funktionen.
Im IIS 7.0 legt Microsoft Wert auf eine einfachere Konfiguration. Bisher ergaben sich die Einstellungen für eine Webanwendung aus dem Zusammenspiel der Einstellungen in der IIS-Metabase, die über den IIS-Manager festgelegt wurden, und den Einstellungen in den
XML-basierten
ASP.NET-
Konfigurationsdateien, den
web.config-Dateien.
Der neue
Webserver übernimmt das .NET-basierte Konfigurationssystem, das heißt alle Einstellungen einer Webanwendung, sowohl die von
ASP.NET als auch die des IIS, werden in .config-Dateien gespeichert. Microsoft spricht vom „Configuration Store“, der die bisherige Metabase ersetzt.
Web.Config-Dateien bieten gegenüber dem bisherigen Metabase-basierten Konfigurationsmodell vier wesentliche Vorteile:
Neben der Hochzeit auf Konfigurationsebene finden IIS und
ASP.NET auch auf der Ebene der Verarbeitung eines Seitenabrufs über die Request
Pipeline zueinander. Bisher kümmerte sich zunächst der IIS um die Anfrage und übergab sie dann an aspnet_isapi.dll; die von
ASP.NET erzeugte Antwort ging wieder zurück an IIS, der sie an den Client gesendet hat. In dem neuen Integrated Application Pool Mode lassen sich die Modulen in beliebiger Reihenfolge nacheinander ausführen, egal ob es sich um Module in verwaltetem Code wie bei dem Modulen für
ASP.NET HTTP Handler und HTTP oder in unverwaltetem wie beim Win32
HTTP Module handelt. Bisherige Doppelarbeiten, zum Beispiel im Bereich der
Authentifizierung für den
Webserver und für
ASP.NET, entfallen dadurch. Die Administration wird einfacher, da sie nicht mehr zwischen IIS- und ASP
.NET-Modulen unterschiedet. Der IIS verwaltet alle Module im Element <modules> in den
Konfigurationsdateien. In dem neuen Modell sind die aus
ASP.NET stammenden Konfigurationselemente <httpModules> und <httpHandlers> ohne Bedeutung. Daraus ergibt sich, was Microsoft „Unified Request
Pipeline“ nennt: eine gemeinsame Aufrufkette für die beiden Modultypen. Um die Kompatibilität zu wahren, lässt sich IIS 7.0 auch in den „
ISAPI Application Pool Mode“ schalten. Dann funktioniert die
Pipeline wieder wie im IIS 6.0.