Sie sind hier: Startseite | Wissen
Begriff Internet Information Server 7.0/7.5
Abkürzung IIS 7.0/7.5
Eintrag zuletzt aktualisiert am 08.08.2012

 Zur Stichwortliste unseres Lexikons

Was ist Internet Information Server 7.0/7.5?

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. Abbildung 11 zeigt ein Beispiel, in dem Einstellungen des IIS (Directory Browsing und Default Document) mit ASP.NET-Einstellungen (Profile, Authentication) in einer Konfigurationsdatei stehen.

Web.Config-Dateien bieten gegenüber dem bisherigen Metabase-basierten Konfigurationsmodell vier wesentliche Vorteile:
  • Die Konfigurationsdateien können mit einfachen Werkzeugen (Text- oder XML-Editoren) bearbeitet werden.
  • Die Konfigurationsdateien können einfacher (per Dateikopie und auch per FTP) übertragen werden. Geänderte Konfigurationsdateien führen sofort zur Verhaltensänderung.
  • Die Konfigurationsdateien liegen lokal in dem jeweiligen Webprojekt. Die Delegation von administrativen Aufgaben wird dadurch einfacher. In Hosting-Szenarien vereinfacht sich dadurch die Konfiguration erheblich, da weder die Frontpage Server Extensions noch ein RPC-Zugang zu dem Webserver-Dienst notwendig sind.
  • Die Konfigurationsdateien bilden eine Hierarchie. In jedem Unterverzeichnis können Konfigurationsdateien existieren, wobei untergeordnete Konfigurationsdateien übergeordnete Einstellung überschreiben.

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 (siehe Abbildungen 4 und 5) 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 (RSCA) zur Verfügung. Mit dieser Komponente kann man Anwendungspools, Arbeitsprozesse, Website und Application Domains im IIS überwachen. RSCA 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.

Unified Request Pipeline

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.

Beratung & Support:

Schulungen zu diesem Thema:

 Anfrage für eine individuelle Schulung zum Thema Internet Information Server 7.0/7.5  Gesamter Schulungsthemenkatalog