IIS 8.0 mit ASP.NET 3.5 und ASP.NET 4.5
von Won Yoo
Kompatibilität
Version | Hinweise |
---|---|
IIS 8.0 | ASP.NET 3.5 und ASP.NET 4.5 werden in IIS 8.0 unterstützt. |
IIS 7.5 | ASP.NET 3.5 und ASP.NET 4.5 werden in IIS 7.5 unterstützt. |
IIS 7.0 | ASP.NET 3.5 und ASP.NET 4.5 werden in IIS 7.0 unterstützt. |
Problem
Windows Server 2012 enthält standardmäßig .NET Framework 4.5 sowie die optionale Installation von .NET 3.5 Framework. Entwickler müssen häufig gemischte Webanwendungen in mehreren .NET Framework-Versionen ausführen.
Lösung
IIS 8.0 in Windows Server 2012 führt ASP.NET-Anwendungen in allen von Windows Server 2012 unterstützten .NET Framework-Versionen aus. Das bedeutet, dass ASP.NET-Anwendungen in IIS 8.0 entweder mit .NET Framework 3.5 oder .NET Framework 4.5 ausgeführt werden können. IIS 8.0 hostet Versionen des .NET Frameworks in verschiedenen Anwendungspools, sodass mehrere ASP.NET-Anwendungen mit unterschiedlichen .NET Framework-Versionen gleichzeitig auf Windows Server 2012 ausgeführt werden können.
IIS 8.0 unterstützt auch die Verwaltung von ASP.NET 3.5- und ASP.NET 4.5-Anwendungen sowohl mit dem grafischen IIS-Managertool als auch mit den Befehlszeilenverwaltungstools von IIS. Weitere Informationen finden Sie im Artikel IIS 8.0 ASP.NET-Konfigurationsverwaltung.
Schrittanweisungen
Voraussetzungen
- IIS 2012 ist unter Windows Server 2012 installiert. Weitere Informationen zum Installieren von IIS 8 finden Sie unter Installation von IIS 8 auf Windows Server 2012.
Einrichten von IIS 8.0 mit Unterstützung für ASP.NET 3.5 und ASP.NET 4.5
In Windows Server 2012 werden sowohl .NET Framework 3.5 als auch .NET Framework 4.5 nativ vom Betriebssystem erkannt. Dies bedeutet, dass sowohl das benutzeroberflächenbasierte als auch das befehlszeilengesteuerte Setup verwendet werden kann, um beide Versionen von .NET Framework zu aktivieren und die Integration beider Versionen von ASP.NET mit IIS 8.0 zu ermöglichen.
Für diese exemplarische Vorgehensweise verwenden wir die neue Server-Manager-Benutzeroberfläche unter Windows Server 2012 Server, um die Aktivierung von ASP.NET 3.5 und ASP.NET 4.5 in IIS 8.0 zu veranschaulichen.
Wenn Sie sich zum ersten Mal bei einem neuen Windows Server 2012-Computer anmelden, wird die neue Server-Manager-Benutzeroberfläche angezeigt. Klicken Sie wie unten gezeigt auf Rollen hinzufügen:
Klicken Sie auf dem ersten Bildschirm des Assistenten zum Hinzufügen von Rollen und Features auf Weiter. Dadurch wird eine Seite angezeigt, auf der Sie den gewünschten Installationstyp auswählen. Wählen Sie wie unten gezeigt entweder rollenbasierte oder featurebasierte Installation aus:
Klicken Sie auf Weiter. Auf dem nächsten Bildschirm des Assistenten werden Sie aufgefordert, den Server auszuwählen, den Sie konfigurieren.
Im nächsten Schritt des Assistenten werden Sie aufgefordert, eine oder mehrere Serverrollen auszuwählen. Scrollen Sie in der Liste Rollen nach unten, und aktivieren Sie das Kontrollkästchen Webserver (IIS), wie unten dargestellt:
Klicken Sie auf Weiter, um zum nächsten Schritt zu gelangen, in dem Sie weitere spezifische Features für die Installation auf dem Server auswählen können. Klicken Sie erneut auf Weiter, und fahren Sie mit dem nächsten Schritt fort.
Im nächsten Schritt des Assistenten werden einige einführende Informationen über die Rolle Webserver (IIS) angezeigt. Klicken Sie erneut auf Weiter, und fahren Sie mit dem nächsten Schritt fort. Der Assistent sollte nun einen Schritt anzeigen, der wie der folgende aussieht:
Beachten Sie, dass eine Reihe von standardmäßigen Unterfeatures für IIS bereits aktiviert sind, da Sie zuvor die Serverrolle Webserver (IIS) ausgewählt haben. Da wir jedoch sowohl ASP.NET 3.5 als auch ASP.NET 4.5 in IIS 8.0 ausführen möchten, müssen wir einige zusätzliche IIS-bezogene Features aktivieren. Scrollen Sie in der Liste Rollendienste nach unten, bis der Knoten Anwendungsentwicklung angezeigt wird. Dieser Knoten ist zunächst reduziert. Klicken Sie auf den Knoten, und erweitern Sie ihn, sodass seine untergeordneten Elemente angezeigt werden:
Im Knoten Anwendungsentwicklung aktivieren wir die ASP.NET-Integration mit IIS. Beachten Sie, dass es in der Featureliste einige Kontrollkästchen mit ähnlichen Namen gibt. Die beiden relevanten Kontrollkästchen für diese exemplarische Vorgehensweise sind:
- ASP.NET 3. 5: Diese Option ermöglicht die Ausführung von ASP.NET 3.5 in IIS 8.0. Beachten Sie, dass .NET Framework 3.5 bei Windows Server 2012 nicht als Teil des Basisbetriebssystemimages verfügbar ist. Stattdessen werden die Nutzdaten aus dem Internet heruntergeladen, und Sie müssen eine Verbindung mit dem Internet herstellen.
- ASP.NET 4.5: Diese Option ermöglicht die Ausführung von ASP.NET 4.5 in IIS 8.0.
Klicken Sie zuerst auf das Kontrollkästchen ASP.NET 3.5. Daraufhin wird ein zusätzliches Dialogfeld eingeblendet (siehe unten):
Da ASP.NET 3.5 in das Setup von Windows Server 2012 integriert ist, kennt Windows Server 2012 alle Abhängigkeiten, die für die Aktivierung von ASP.NET 3.5 in IIS 8.0 erforderlich sind. In diesem Popupdialogfeld wird lediglich angezeigt, was automatisch mithilfe von Pull übertragen und installiert wird. Da wir ASP.NET 3.5 aktivieren möchten, klicken Sie auf Erforderliche Features hinzufügen.
Klicken Sie als Nächstes in der Featureliste Rollendienste auf das Kontrollkästchen ASP.NET 4.5. Das Endergebnis des Anklickens der beiden ASP.NET-bezogenen Kontrollkästchen ist unten dargestellt:
Obwohl Sie nur die ASP.NET 3.5 und ASP.NET 4.5-Features direkt ausgewählt haben, hat der Assistent automatisch eine Reihe anderer Elemente aktiviert. Dies geschieht automatisch, damit die Entwickler nicht explizit die verschiedenen Komponententeile auswählen müssen, die für die „Assembly“ von ASP.NET unter Windows Server 2012 erforderlich sind. Klicken Sie an dieser Stelle auf Weiter, um die Änderungen zu übernehmen.
Im Schritt Installationsauswahl bestätigen wird eine Liste aller Features angezeigt, die installiert werden, wenn Sie die Änderungen akzeptieren.
Klicken Sie an dieser Stelle auf Installieren, um die Änderungen zu akzeptieren und die vollständige ASP.NET-Unterstützung unter Windows Server 2012 zu installieren.
Da die Installation einige Zeit in Anspruch nehmen wird, zeigt der Assistent ein Statusdialogfeld an, während die Installation fortschreitet:
Nach ein paar Minuten zeigt der Assistent an, dass die Installation abgeschlossen ist:
An diesem Punkt können Sie auf Schließen klicken und den Assistenten beenden.
Erkunden der IIS 8.0-Installation
Da sowohl IIS 8.0 als auch die ASP.NET-Integration installiert sind, können wir uns den grundlegenden ASP.NET Speicherbedarf für IIS 8.0 ansehen.
Wählen Sie im Windows-Startmenü Alle Programme aus, und erweitern Sie dann das Menü Verwaltung. Suchen Sie in der daraufhin angezeigten Liste den Internetinformationsdienste-Manager (IIS), und wählen Sie ihn aus, um das grafische IIS-Verwaltungstool zu starten:
Nachdem der IIS-Manager gestartet wurde, erweitern Sie den Serverknoten im linken Fenster, sodass sowohl der Knoten Anwendungspools als auch der Knoten Sites angezeigt werden. Daraufhin zeigt der IIS-Manager ein Dialogfeld an, in dem Sie gefragt werden, ob Sie mit den neuesten Webplattform-Komponenten verbunden bleiben möchten. Für diese exemplarische Vorgehensweise können Sie auf Nein klicken. An diesem Punkt sieht der IIS-Manager wie in der folgenden Abbildung aus:
Klicken Sie auf den Knoten Anwendungspools, um die Anwendungspools anzuzeigen, die jetzt zur Verwendung durch IIS 8.0 installiert sind:
Sie können sehen, dass standardmäßig sechs verschiedene Anwendungspools erstellt werden, wenn sowohl ASP.NET 3.5 als auch ASP.NET 4.5 für IIS 8.0 aktiviert sind. Vier der Anwendungen sind neu für IIS 8.0, während zwei andere Anwendungspools aus früheren Windows-Versionen übernommen wurden.
- Beachten Sie, dass in der Spalte .NET Framework-Version zwar „v2.0“ und „v4.0“ als .NET Framework-Versionen angegeben sind, diese aber ASP.NET 3.5 und ASP.NET 4.5 entsprechen. Aufgrund der internen Art und Weise, wie Anwendungspools an .NET Framework-Versionen gebunden sind, entspricht der tatsächliche Versionsname, der in die Konfiguration geschrieben (und somit im Tool angezeigt) wird, der ursprünglichen .NET Framework-Dateiversion.
- Der klassische .NET AppPool und DefaultAppPool waren bereits in früheren Versionen von Windows vorhanden und werden daher auch weiterhin für IIS 8.0 erstellt. Da jedoch .NET Framework 4.5 das Standard-.NET-Framework für Windows Server 2012 ist, verwendet „DefaultAppPool“ in IIS 8.0 standardmäßig auch die neuere Version des .NET-Frameworks.
- Die anderen vier Anwendungspools sind neu unter Windows Server 2012. Es gibt zwei Anwendungspools für die Ausführung von .NET Framework 3.5 (.NET v2.0 und .NET v2.0 Classic), und zwei Anwendungspools für die Ausführung von .NET Framework 4.5 (.NET Framework 4.5 und .NET Framework 4.5 Classic).
- Der Unterschied zwischen „klassischen“ und „nicht klassischen“ Anwendungspools ist der verwaltete Pipelinemodus, der in jedem Anwendungspooltyp unterstützt wird. Die beiden Anwendungspools mit der Endung „Classic“ unterstützen den älteren klassischen Pipelinemodus für ASP.NET aus der Zeit von Windows Server 2003, während die beiden anderen Anwendungspools den neueren integrierten Pipelinemodus für ASP.NET verwenden, der in Vista/IIS7.0 eingeführt wurde.
Erkunden Sie ein wenig weiter, und erweitern Sie auf der linken Seite des Bildschirms den Knoten Sites, sodass der Knoten Standardwebsite sichtbar wird:
Standardinstallationen von IIS haben immer eine „Standardwebsite“, die so konfiguriert ist, dass sie an Port 80 auf HTTP-Anforderungen lauscht. Sehen Sie sich die „Standardwebsite“ genauer an, um herauszufinden, welche Version von ASP.NET sie standardmäßig unterstützt. Klicken Sie mit der rechten Maustaste auf Standardwebsite, wählen Sie dann Website verwalten aus, und wählen Sie wie unten gezeigt Erweiterte Einstellungen aus:
Das Dialogfeld Erweiterte Einstellungen wird geöffnet und zeigt (unter anderem) den Anwendungspool an, in dem die „Standardwebsite“ ausgeführt wird. Wie in der Abbildung unten dargestellt, wird die „Standardwebsite“ im Anwendungspool „DefaultAppPool“ ausgeführt:
Wenn Sie auf der rechten Seite des Anwendungspools auf die kleine Auslassungspunkt-Schaltfläche klicken, wird ein zusätzliches Dialogfeld mit weiteren Informationen zum „DefaultAppPool“ angezeigt. Wie bereits erwähnt, ist „DefaultAppPool“ für IIS 8.0 standardmäßig auf ASP.NET 4.5 festgelegt, sodass ASP.NET 4.5-Anwendungen, die in der „Standardwebsite“ bereitgestellt werden, ohne weitere Konfiguration funktionieren.
Klicken Sie an diesem Punkt auf Abbrechen, um sowohl das Dialogfeld Anwendungspool auswählen als auch das Dialogfeld Erweiterte Einstellungen abzubrechen.
Ausführen von ASP.NET 3.5- und ASP.NET 4.5-Anwendungen
Nachdem Sie nun den Setupstatus von IIS 8.0 erkundet haben, können Sie versuchen, einige ASP.NET-Beispiele auszuführen, um sich zu vergewissern, dass sowohl ASP.NET 3.5- als auch ASP.NET 4.5-Anwendungen gleichzeitig in einer einzigen IIS 8.0-Installation ausgeführt werden können.
Beispielcode für ASP.NET 3.5 und ASP.NET 4.5 ist in den folgenden ZIP-Datei enthalten:
Richten Sie zunächst eine einfache ASP.NET 3.5-Anwendung in IIS 8.0 ein:
Öffnen Sie die Datei „examples.zip“.
Navigieren Sie auf Ihrem Windows Server 2012-Computer im Windows-Explorer zum Verzeichnis „wwwroot“ für Ihre IIS-Installation. Wenn Sie IIS beispielsweise auf dem Laufwerk C:\ installiert haben, befindet sich das Verzeichnis „wwwroot“ unter
c:\inetpub\wwwroot
.Kopieren Sie den Ordner „example35“ aus „examples.zip“, und fügen Sie ihn in das Verzeichnis
c:\inetpub\wwwroot
ein. Wenn Sie fertig sind, sollte die Verzeichnisstruktur wie folgt aussehen:
Der neu erstellte Ordner „example35“ muss im IIS-Manager als ASP.NET 3.5-Anwendung konfiguriert werden. Wechseln Sie zurück zum IIS-Manager-Fenster, klicken Sie auf den Knoten Standardwebsite, und wählen Sie Aktualisieren aus. Die Strukturansicht der untergeordneten Knoten wird unter der Standardwebsite nun der Ordner „example35“ angezeigt:
Klicken Sie mit der rechten Maustaste Ordner example35, und wählen Sie In Anwendung konvertieren aus.
Das Dialogfeld Anwendung hinzufügen wird angezeigt. Standardmäßig sind alle Verzeichnisse innerhalb der Standardwebsite Teil des Anwendungspools namens DefaultAppPool. Das bedeutet, dass neu erstellte Ordner, die ASP.NET enthalten, standardmäßig als ASP.NET 4.5-Anwendungen ausgeführt werden.
Da wir den Ordner example35 als ASP.NET 3.5-Anwendung ausführen möchten, muss der Anwendungspool geändert werden. Klicken Sie auf Auswählen, und das Dialogfeld Anwendungspool auswählen wird angezeigt. Ändern Sie den Anwendungspool wie unten dargestellt in .NET v2.0:
Klicken Sie auf die Schaltfläche OK, um die Änderung des Anwendungspools zu übernehmen, und klicken Sie dann erneut auf OK, um die Änderungen an IIS zu committen. Das IIS-Manager-Fenster wird erneut angezeigt. In der Strukturansicht mit „Standardwebsite“ wurde das Symbol für „example35“ geändert, um anzuzeigen, dass es sich jetzt um eine separate ASP.NET-Anwendung handelt.
Starten Sie nun eine Instanz von Internet Explorer, und navigieren Sie zu folgender URL:
http://localhost/example35
Nach einer kurzen Pause zeigt die Anwendung eine Liste der in dieser Anwendung unterstützten .NET Framework-Features an.
Wenn Sie in Windows Explorer zum Verzeichnis
c:\inetpub\wwwroot\example35
navigieren, können Sie mit Editor den Code für „default.aspx“ und die Informationen in „web.config“ anzeigen. Der Inhalt von „web.config“ enthält beispielsweise Anweisungen, die die .NET Framework-Compiler für die Ausführung im Modus „3.5“ konfigurieren. Der .NET Framework-Code in „default.aspx“ veranschaulicht einige C#-Konstrukte, die in .NET 3.5 eingeführt wurden, insbesondere LINQ-to-Object-Abfragen.
Da nun eine ASP.NET 3.5-Anwendung ausgeführt wird, können Sie eine zweite ASP.NET Anwendung erstellen, diese aber diesmal für die Verwendung von .NET Framework 4.5 konfigurieren.
Wechseln Sie zurück zum Windows Explorer-Fenster, in dem die ZIP-Datei „examples.zip“ geöffnet ist.
Öffnen Sie den Inhalt des Ordners „example45“.
Navigieren Sie im zweiten geöffneten Windows Explorer-Fenster zu
c:\inetpub\wwwroot
.Kopieren Sie die Datei „default.aspx“ aus der ZIP-Datei, und fügen Sie sie direkt in
c:\inetpub\wwwroot
ein. Die Ordnerinhalte fürc:\inetpub\wwwroot
sollten nun wie folgt aussehen:
Wechseln Sie nun zurück zu Internet Explorer, und navigieren Sie zu folgender URL:
http://localhost/default.aspx
Nach einer kurzen Pause beginnt ein zweiter Anwendungspool mit der Ausführung einer ASP.NET 4.5-Anwendung für die „Standardwebsite“. Der Browser zeigt erneut eine Liste der in dieser Anwendung unterstützten .NET Framework-Features an, mit einem neuen Eintrag am Ende der Liste für dynamisch typisierte Variablen (d. h. das in .NET Framework 4.0/4.5 eingeführte dynamische Schlüsselwort). Beachten Sie, dass im Gegensatz zur Anwendung „example35“, die spezielle web.config-Einträge erforderte, keine web.config-Datei erforderlich war, um die Seite „default.aspx“ in der „Standardwebsite“ zu konfigurieren und auszuführen. Dies liegt daran, dass .NET Framework 4.5 das standardmäßige .NET Framework ist, das von ASP.NET-Anwendungen in IIS 8.0 verwendet wird und daher keine zusätzliche Konfiguration erforderlich ist.
Wenn Sie die soeben kopierte Seite „default.aspx“ mit Editor öffnen, werden Sie einige Änderungen im Vergleich zur Version im Verzeichnis „example35“ feststellen. Es gibt keine Namespaceanweisungen am Anfang der Seite, da .NET Framework 4.5 die Standardversion für IIS 8.0 ist. Der Code auf der Seite veranschaulicht die Verwendung einer dynamischen Variablen, die in .NET Framework 4.0/4.5 eingeführt wurde.
Zusammenfassung
IIS 8.0 unterstützt die Ausführung von ASP.NET 3.5- und ASP.NET 4.5-Anwendungen auf demselben Computer mit unterschiedlichen Anwendungspools zum Hosten jeder .NET Framework-Version. IIS 8.0-Unterstützung für mehrere .NET Framework-Versionen ermöglicht Entwicklern und Administratoren die vollständige Nutzung von IIS 8.0 und gleichzeitig die Abwärtskompatibilität mit Webanwendungen, die von Windows Server 2008 R2 übertragen werden.