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)

IIS und ASP.NET

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 LAMP (Linux, Apache, MySQL, PHP).

ASP.NET integriert sich in Form eines ISAPI-Filters (aspnetfilter.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.