Internet Information Server 7.0/7.5 (IIS 7.0/7.5)
Eintrag zuletzt aktualisiert am: 24.05.2022
Der Internet Information Server 7.0 ist in
Windows Vista und – dort in einer leicht erweiterten Variante – in Windows Server 2008 enthalten.
Windows Server 2008 Release 2 enthält den
Internet Information Server 7.5 !
Neuerungen ab IIS 7.0 (in Windows Server 2008 und Windows Vista
Mit
Windows Vista und Windows Server 2008 hat Microsoft den
IIS komplett überarbeitet. Wesentliche neue Funktionen von
IIS 7.0 gegenüber dem Vorgänger
IIS 6.0 sind:
Der Server ist komponentenorientiert, das heißt, es müssen nur wirklich die benötigten Teile von
IIS installiert werden
IIS ist nun auch Server für andere Protokolle außer HTTP /
HTTPS
Der
IIS-Manager wurde komplett überarbeitet
ASP.NET und
IIS benutzen nun das gleiche Konfigurationskonzept (siehe Kapitel 8 »Konfiguration«)
ASP.NET und
IIS verwenden die gleiche Verarbeitungspipeline
Es gibt nun Programmierschnittstellen zur automatisierten Administration (.NET und
WMI) und Systemüberwachung
IIS 7.5 (in Windows Server 2008 R2 und Windows 7) bietet zwei zentrale neue Funktionen
FTP-Server
Autostart für ASP.NET-Anwendungen
Komponentenbasierter Webserver
Microsoft nennt den
IIS 7.0 einen komponentenbasierten Server, weil er so stark aus einzelnen unabhängigen
Softwarekomponenten zusammengebaut ist, dass nur die wirklich benötigten Funktionen installiert werden müssen. Anders als der monolithische Vorgänger
IIS 6.0, bietet der
IIS 7.0 um einen kleinen
Webserverkern (Web Core Server) herum die Auswahl unter mehr als 40
IIS-Modulen für
Netzwerkprotokolle, Protokollierung, Konfiguration,
Authentifizierungsverfahren und Diagnose.
Der komponentenbasierte Aufbau zeigt sich bereits beim Setup: Bei der Installation des
IIS in
Longhorn Server durch den “Add Roles
Wizard” fordert Windows als Grundlage die Installation des
Windows Activation Service (
WAS).
WAS 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 zu installierenden Funktionen auswählen. Neben den Anwendungsentwicklungsframeworks wie ASP, ASP.NET,
CGI und
ISAPI kann er auch in den Bereichen „HTTP-Features“, „Health and Diagnostics“, „Security“ und „Management Tools“ die gewünschten Module selektieren. Im Bereich Sicherheit sind verschiedene
Authentifizierungsverfahren (z.B. Basic, Windows, Digest,
Zertifikate) wählbar. Bei den Management-Diensten steht u.a. Zur Wahl, ob sich der
IIS 7.0 auch mit den Verfahren eines
IIS (Konsole, Skript,
WMI) verwalten lassen soll und ob eine Fernverwaltung des
IIS über einen Management Service erlaubt sein soll.
Die Komponentenorientierung erlaubt
Webserverbetreibern auf jeder Ebene (
Webserver, Website, Anwendung oder Verzeichnis) dedizierte Modulsätze zu erstellen. Möglich ist so beispielsweise, einen
Webserver zu betreiben, der ausschließlich Windows-
NTLM-
Authentifizierung (WindowsAuthModule), statische Webseiten (StaticFileModule), Kompression (StaticCompressionModule) und Protokollierung (HttpLoggingModule) 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 zu Deaktivierung bot. Neben einer erhöhten Sicherheit ist von einem auf die notwendigen Module reduzierten
Webserver auch eine Leistungssteigerung zu erwarten.
Installieren lässt sich der
IIS 7.0 auf Windows
Longhorn Servern sowie den Home Premium, Business und Ultimate-Varianten von
Windows Vista. Auf keiner Plattform ist der
IIS Bestandteil des Standardinstallationsumfangs, sondern immer eine Option, die nach der Installation des Betriebssystems zu aktivieren ist in der Systemsteuerung (Vista) oder dem Rollenassistent (
Longhorn Server).
Mehr als ein HTTP-Server
Der
IIS war bisher ein
Webserver (HTTP), Dateiserver (
FTP) ,Mailserver (
SMTP) und Newsserver (
NNTP). 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 (
WCF) werden. Neben dem bereits aus dem
IIS 6.0 bekannteb 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 kein Arbeitsprozess vorliegt, erzeugt der
WAS einen passenden Prozess.
WAS kann auf Wunsch verschiedene Protokolle in einem Arbeitsprozess bedienen. Die Anwendungspools des
WAS besitzen ähnliche Eigenschaften (z.B. Prozessidentität, Recycling) wie die
IIS 6.0-Anwendungspools.
Einheitliche Konfiguration
Im
IIS 7.0 legt Microsoft außerdem 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 (
web.config).
Mit
IIS 7.0 wird der
Webserver nun das .NET-basierte Konfigurationssystem übernehmen, d.h. Alle Einstellungen einer Web-Anwendung, 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:
Microsoft spricht beim
IIS 7.0 von einem „Unified Configuration Model“. Zentrale Einstellungen, die für den ganzen
Webserver gelten, befinden sich in ApplicationHost.config im Verzeichnis systemroot\System32\inetsrv. Die ApplicationHost.config erbt wieder von der
Machine.config des
.NET Frameworks. Unterhalb der ApplicationHost.config in der
Vererbungshierarchie steht die globale
web.config-Datei, die sich in systemroot\Microsoft.NET\Framework\Versionnummer\CONFIG\Web.config befindet. Die Web.Config-Dateien der einzelnen virtuellen
Webserver (alias Websites) erben von dieser globalen
web.config-Datei.
In der ApplicationHost.config-Datei sind die Pfade der virtuellen
Webserver sowie die Anwendungspooleinstellungen enthalten. Einstellungen für die Pfade der Websites können nicht auf untergeordneter Ebene überschrieben werden, da dies keinen Sinn machen würde.
Administrationsoberfläche
IIS-
Konfigurationsdateien können direkt über einen beliebigen Editor bearbeitet werden. Microsoft stellt für
XML-Editoren ein Schema und für
Visual Studio 2005 eine Codeausschnittssammlung zur Verfügung. Komfortabler ist jedoch, statt der direkten Bearbeitung eine grafische Administrationsoberfläche zu verwenden. Die Administrationsoberfläche, der Internet Informationsdienste-Manager (
IIS-Manager), wurde komplett überarbeitet. Auf der einen Seite hat Microsoft die administrativen Funktionen von ASP.NET und
IIS, die bisher verstreut waren, zusammengefasst. Der neue
IIS-Manager umfasst die Funktionen des bisherigen
IIS-Managers (z.B.
Authentifizierungseinstellungen), die
IIS-Manager-Erweiterungen für
ASP.NET 2.0, die mit dem
.NET Framework installiert wurden (z.B. Verwaltung von
Verbindungszeichenfolgen) sowie die Funktionen der webbasierten
ASP.NET 2.0-Verwaltungsoberfläche (z.B. Benutzer- und Rollenverwaltung).
Auf der anderen Seite hat Microsoft die bisher auf zahlreiche Registerkarten verteilten Einstellungen neu gruppiert. Microsoft nennt die neue Steuerung „aufgabenbasiert“. Die Aufgaben sind in Gebiete und die einzelnen Gebiete wiederum in Kategorien gegliedert. Im Hauptteil des Fensters erscheinen nur die Aufgaben, die der aktuellen Auswahl von Gebiet und Kategorie entsprechen. Nach Anwahl der Aufgabe präsentiert sich entweder eine eigene Oberfläche zur Verwaltung der zugehörigen Einstellungen oder das aus
Visual Studio bekannte Eigenschaftsgitter. Der Einsatz des Eigenschaftsgitters ist jedoch hoffentlich noch eine Beta-Erscheinung, denn es macht die Administration nicht einfacher, wie man gut bei der Verwaltung der Anwendungspooleinstellungen sieht.
Die
Liste der virtuellen
Webserver kann durch Gruppierung und Filterung übersichtlicher gestaltet werden, sodass es leichter wird, eine große Menge von virtuellen
Webservern in einem
IIS zu verwalten. Neu im
IIS 7.0 ist auch, dass jeder virtuelle
Webserver eine eigene
Liste von Administratoren besitzt, sodass die Delegation von administrativen Aufgaben einfacher wird (
Delegated Administration). Neben Windows-Benutzerkonten kennt der
IIS auch eigene Benutzerkonten, damit in Hosting-Szenarien eine Delegation möglich ist ohne Vergabe eines Windows-Benutzerkontos. Eine Fernadministration eines
IIS 7.0 ist möglich via HTTP; der
DCOM-Zugriff zum
Webserver ist also nicht mehr notwendig.
Zur automatisierten Administration bietet der
IIS 7.0 ein neues Kommandozeilenwerkzeug (appcmd.exe) und einen neuen Provider für die
Windows Management Instrumentation (
WMI) [4]. Microsoft verwendet für den neuen
WMI-Provider den Namensraum root/AppServer und unterstreicht mit dem Namen „AppServer“ die größere Rolle, die dem
IIS 7.0 zugewiesen wird.
Für die Laufzeitüberwachung steht auch eine COM-basierte Schnittstelle mit Namen Runtime Status and Control API (R
SCA) zur Verfügung. Mit dieser Komponente kann man Anwendungspools, Arbeitsprozesse, Website und
Application Domains im
IIS überwachen. R
SCA kann auch über
WMI ausgelesen werden und liefert Daten an den
IIS-Manager (Health und Diagnostics/Worker Processes und Health und Diagnostics/Failed Request
Tracing). Im
IIS-Manager kann man daher nun eine
Liste der aktuellen Anfragen (Current Request Listing) sehen. Der
IIS-Manager kann über eine .NET-basierte Schnittstelle, das Web Management Framework API (Namensräume Microsoft.Web.Management.Server, Microsoft.Web.Management.Host und Microsoft.Web.Management.Client in Microsoft.Web.Management.dll) erweitert werden.
Neben der Hochzeit auf Konfigurationsebene finden
IIS und ASP.NET auch auf der Ebene der Verarbeitung eines Seitenabrufs (Request
Pipeline) zueinander. Bisher wurde ein Request zunächst im
IIS verarbeitet, dann an aspnet_isapi.dll übergeben und zum Schluss wurde die von ASP.NET erzeugte Antwort vom
IIS an den Client gesendet. In dem neuen Integrated Application Pool Mode können eine Reihe von Modulen in beliebiger Reihenfolge nacheinander ausgeführt werden, auch wenn ein Teil der Module in Managed Code (ASP.NET
HTTP Handler und
HTTP Module) und der andere Teil in
Unmanaged Code (Win32
HTTP Module, geschrieben unter Einsatz von
ISAPI) erstellt wurde. Bisher notwendige Doppelarbeiten, z.B. Im Bereich der
Authentifizierung, entfallen dadurch. Die Administration wird einfacher, da es keine Trennung in
IIS- und ASP
.NET-Module mehr gibt. Der
IIS verwaltet alle Module in der
Liste <modules> in den
Konfigurationsdateien. In dem neuen Modell sind die aus ASP.NET stammenden Konfigurationselemente <httpModules> und <httpHandlers> ohne Bedeutung. Um Kompatibilität sicherzustellen kann man den
IIS 7.0 auch in den „
ISAPI Application Pool Mode“ schalten. Dann funktioniert die Request
Pipeline wie im
IIS 6.0.
Ein weiterer Vorteil des neuen Verarbeitungsmodells ist, dass für die Erweiterung des
IIS keine
ISAPI-Erweiterungen, die nur in C++ entwickelt werden können, mehr notwendig sind.
IIS 7.0 erlaubt die Erweiterung mit Hilfe der aus ASP.NET bekannten Programmiermodelle Managed
ASP.NET Handler und Managed ASP.NET Modul, wobei eine beliebige
.NET-Sprache zum Einsatz kommen kann. Möglich wird dadurch beispielsweise, die Protokollierung oder die vom
Webserver generierte Verzeichnis-Auflistung nach eigenen Bedürfnissen anzupassen. Microsoft will damit den
Webserver auch für Erweiterungen von Drittanbietern öffnen.
Fazit
Microsoft macht den
IIS von einem
Webserver immer mehr zu einem universellen Anwendungsserver. Für die große Vielfalt der Anwendungsgebiete, die es heute schon gibt und die in Zukunft noch wachsen wird, hat Microsoft dem
IIS mit einem neuen Konfigurationsmodell und einer neuen Administrationsoberfläche ausgestattet. Herausragend dabei sind die Möglichkeiten zur räumlich und personell verteilten Administration.
Xcopy-Deployment funktioniert im
IIS 7.0 endlich auch mit Webanwendungen. ASP.NET integriert sich nahtlos in das neue Modell. Der
IIS 7.0 und seine Administrationsoberflächen sind zudem viel leichter erweiterbar als seine Vorgänger. Umdenken müssen nur diejenigen, die noch mit klassischen Webanwendungsframeworks wie ASP, ICD oder
CGI gearbeitet haben. Damit ist man bei dem gleichen Fazit, dass man immer wieder hörte in den letzten fünf Jahren: Die Zukunft gehört .NET und denjenigen, die .NET anwenden.