Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Übersicht über das Vorkompilieren einer ASP.NET-Website

Visual Studio 2005

Standardmäßig werden ASP.NET-Webseiten und Codedateien dynamisch kompiliert, wenn eine Ressource wie die Seite einer Website zum ersten Mal durch einen Benutzer angefordert wird. Nach dem ersten Kompilieren der Seiten und Codedateien werden die kompilierten Ressourcen zwischengespeichert, sodass die Seite für nachfolgende Anforderungen sehr schnell zur Verfügung steht.

ASP.NET kann eine Site auch komplett vorkompilieren, bevor sie den Benutzern zugänglich gemacht wird. Diese Vorgehensweise bietet eine Reihe von Vorteilen:

  • Die Antwortzeiten für Benutzer sind schneller, da Seiten und Codedateien nicht erst bei der ersten Anforderung kompiliert werden. Das ist besonders für große Sites nützlich, die häufig aktualisiert werden.

  • Kompilierungsprobleme können vor der Veröffentlichung erkannt werden.

  • Die kompilierte Version der Site kann ohne den Quellcode auf einem Produktionsserver bereitgestellt werden.

Vorkompilierungsoptionen

ASP.NET bietet zwei Optionen für das Vorkompilieren einer Site:

  • Direktes Vorkompilieren einer Site. Mit dieser Option können Sie die Leistung vorhandener Sites verbessern und die Sites auf Fehler überprüfen.

  • Vorkompilieren einer Site zur Bereitstellung. Diese Option liefert eine besondere Art der Ausgabe, die Sie auf einem Produktionsserver bereitstellen können.

Darüber hinaus können Sie eine Site vorkompilieren, um sie schreibgeschützt oder aktualisierbar zu machen. Die folgenden Abschnitte enthalten weitere Details zu den Optionen.

Direktes Vorkompilieren

Sie können die Leistung der Website durch Vorkompilierung verbessern. Das gilt insbesondere für Sites mit häufigen Änderungen und Erweiterungen von ASP.NET-Webseiten und Codedateien. Die Zeit, die für das dynamische Kompilieren von neuen und geänderten Seiten erforderlich ist, könnte beim Benutzer zu einer negativen Einschätzung bezüglich der Qualität der Site führen.

NoteHinweis

Die direkte Vorkompilierung entspricht vom Vorgang her gänzlich der Kompilierung, die bei der Anforderung einer Seite durch einen Benutzer durchgeführt wird. Die Leistungssteigerung wird also vor allem dadurch erzielt, dass die Seiten nicht erst bei der ersten Anforderung kompiliert werden.

Bei der direkten Vorkompilierung werden alle ASP.NET-Dateitypen kompiliert. (HTML-Dateien, Grafiken und andere statische nicht-ASP.NET-Dateien bleiben unverändert.) Bei der Vorkompilierung wird dieselbe Logik verwendet wie bei der dynamischen Kompilierung, d. h. die Abhängigkeiten zwischen Dateien werden berücksichtigt. Bei der Vorkompilierung werden vom Compiler Assemblys für den ausführbaren Anteil der Ausgabe erstellt und in einem speziellen Ordner im Verzeichnis %SystemRoot%\Microsoft.NET\Framework\Version\Temporary ASP.NET Files gespeichert. Spätere Seitenanforderungen erfüllt ASP.NET dann durch den Rückgriff auf die Assemblys in diesem Ordner.

Wenn Sie die Site erneut vorkompilieren, werden nur neue oder geänderte Dateien kompiliert (oder Dateien mit Abhängigkeiten gegenüber neuen oder geänderten Dateien). Durch diese Compileroptimierung können Sie die Site bei kleineren Aktualisierungen ohne großen Aufwand kompilieren.

Vorkompilieren für die Bereitstellung

Durch Vorkompilieren der Site lässt sich eine ausführbare Version der Site erstellen, die Sie auf einem Produktionsserver bereitstellen können. Beim Vorkompilieren für die Bereitstellung wird als Ausgabe ein Layout erstellt, das Assemblys, Konfigurationsinformationen, Informationen über die Siteordner sowie statische Dateien (z. B. HTML-Dateien und Grafiken) enthält.

Nach dem Kompilieren der Site können Sie das Layout auf einem Produktionsserver bereitstellen. Verwenden Sie dazu beispielsweise den XCopy-Befehl von Windows, FTP, die Windows-Installation usw. Das bereitgestellte Layout fungiert dann als Site, und ASP.NET erfüllt die Seitenanforderungen durch den Rückgriff auf die Assemblys in diesem Layout.

Das Vorkompilieren einer Site für die Bereitstellung ist auch eine Schutzmaßnahme für den Quellcode und anderes geistiges Eigentum. Weitere Informationen über den Umgang des Compilers mit Dateien bei der Kompilierung für die Bereitstellung finden Sie unter Behandlung von Dateien bei der Sitekompilierung für die Bereitstellung.

Es gibt zwei Arten des Vorkompilierens für die Bereitstellung: Vorkompilieren nur für die Bereitstellung und Vorkompilieren für die Bereitstellung und die Aktualisierung.

Vorkompilieren nur für die Bereitstellung

Beim Vorkompilieren nur für die Bereitstellung erstellt der Compiler Assemblys aus praktisch allen ASP.NET-Quelldateien, die normalerweise zur Laufzeit kompiliert werden. Dazu gehört Programmcode in Seiten, CS- und VB-Klassendateien, anderen Codedateien und Ressourcendateien. Die Compilerausgabe enthält keine Quelldaten und kein Markup mehr. Im entstandenen Layout werden für jede der ASPX-Dateien kompilierte Dateien generiert (mit der Erweiterung .compiled). Diese enthalten Zeiger zu der entsprechenden Assembly für die Seite.

Um eine Website einschließlich des Layouts der Seiten zu ändern, müssen Sie die Originaldateien ändern, die Site neu kompilieren und das Layout erneut bereitstellen. Einzige Ausnahme bildet die Konfiguration der Site. Wenn Sie Änderungen an der Datei Web.config auf dem Produktionsserver vornehmen, müssen Sie die Site nicht erneut kompilieren.

Diese Option bietet den wirksamsten Schutz für die Seiten und eine hohe Leistung beim Erstzugriff.

Vorkompilieren für die Bereitstellung und die Aktualisierung

Beim Vorkompilieren für die Bereitstellung und die Aktualisierung verwendet der Compiler für das Erstellen der Assemblys den gesamten Quellcode (außer den Seitencode von Seiten, die aus nur einer Datei bestehen) und sonstige Dateien, die normalerweise Assemblys erstellen (z. B. Ressourcendateien). Der Compiler konvertiert ASPX-Dateien in einzelne Dateien, die das Code-Behind-Modell verwenden, und kopiert sie in das Layout.

Mit dieser Option können Sie nach der Kompilierung eingeschränkte Änderungen an den ASP.NET-Webseiten Ihrer Site vornehmen. Sie können z. B. die Anordnung der Steuerelemente, die Farben, Schriftsätze und sonstige Darstellungseigenschaften von Seiten ändern. Sie können auch Steuerelemente hinzufügen, sofern diese keine Ereignishandler oder anderen Code erfordern.

Beim ersten Ausführen der Site führt ASP.NET weitere Kompilierungsschritte durch, um aus dem Markup die Ausgabe zu erstellen.

NoteHinweis

Auf einer vorkompilierten aktualisierbaren Site ist der Verweis mehrerer Seiten auf die die gleiche CodeFile-Klasse nicht zulässig.

Vorkompilieren von untergeordneten Anwendungen

Das Vorkompilieren einer Website kompiliert nur diese Site, keine untergeordneten Sites. Wenn eine Webseite einen in IIS als Anwendung markierten untergeordneten Ordner enthält, wird die untergeordnete Anwendung beim Vorkompilieren des übergeordneten Ordners nicht kompiliert.

Ausführen der Vorkompilierung

Sie können eine Website durch Verwendung des Tools Aspnet_compiler.exe über die Befehlszeile vorkompilieren. Weitere Informationen finden Sie unter Gewusst wie: Vorkompilieren von ASP.NET-Websites für die Bereitstellung und ASP.NET-Kompilierungstool (Aspnet_compiler.exe).

Einige visuelle Designer wie Visual Studio enthalten Befehle zum Vorkompilieren einer Website aus der IDE heraus. Weitere Informationen finden Sie unter Gewusst wie: Veröffentlichen von Websites (Visual Studio) und Gewusst wie: Veröffentlichen und Signieren von Assemblys für vorkompilierte Websites in Visual Web Developer und Gewusst wie: Veröffentlichen und Generieren von festen Assemblynamen in Visual Web Developer und Gewusst wie: Veröffentlichen und Signieren von Assemblys für vorkompilierte Websites in Visual Web Developer und Gewusst wie: Veröffentlichen und Generieren von festen Assemblynamen in Visual Web Developer und Gewusst wie: Veröffentlichen von Websites und Gewusst wie: Veröffentlichen und Signieren von Assemblys für vorkompilierte Websites in Visual Web Developer und Gewusst wie: Veröffentlichen von Websites und Gewusst wie: Veröffentlichen und Generieren von festen Assemblynamen in Visual Web Developer.

Für Sites, die mit aktiviertem Quellschutz kompiliert werden sollen, gilt eine Codierungseinschränkung. Eine Basisseitenklasse (Code-Behind-Klasse) kann auf eine zugeordnete Seitenklasse (ASPX-Datei) und Seitenklassenmember verweisen, indem ein vollqualifizierter Klassenname verwendet wird. Diese Art von Verweis funktioniert jedoch nicht, wenn die Vorkompilierung der Site mit aktiviertem Quellschutz durchgeführt wurde. Das liegt daran, dass sich die Basisseitenklasse der Code-Behind-Datei nicht in der gleichen Assembly befindet wie die Seitenklasse, die aus der ASPX-Seite abgeleitet wurde. Weitere Informationen zur Vorkompilierung mit aktiviertem Quellschutz finden Sie unter Gewusst wie: Signieren von Assemblys für vorkompilierte Websites.

Siehe auch

Anzeigen: