Übersicht über die ASP.NET-Bereitstellung

Aktualisiert: November 2007

Nachdem Sie eine Website entwickelt haben, können Sie sie entweder auf einem Webserver zum Testen (Stagingserver) oder auf einem Server bereitstellen, auf dem die Benutzer mit der Site arbeiten können (Produktionsserver). Sie haben mehrere Optionen zum Bereitstellen einer Website, z. B. auch das Vorkompilieren.

Dieses Thema enthält folgende Abschnitte:

  • Szenarien

  • Bereitstellungsfeatures

  • Hintergrund

  • Codebeispiele

Szenarien

Nachdem Sie in Visual Studio eine Website entwickelt haben, können Sie eine der folgenden Bereitstellungsmethoden wählen:

  • Kopieren Sie die Dateien der Website auf den Zielserver, indem Sie in Visual Studio die entsprechenden Funktionen verwenden.

  • Kompilieren Sie die Site vor, und kopieren Sie die Ausgabe an einen von Ihnen angegebenen Speicherort, z. B. auf einen Produktionsserver.

Zurück nach oben

Features

Visual Studio bietet die folgenden Optionen zum Bereitstellen einer Website:

  • Das Tool zum Kopieren von Websites, mit dem die aktuelle Website auf den Zielserver kopiert wird.

  • Das Dienstprogramm zum Veröffentlichen von Websites, das eine Website in einen Satz ausführbarer Dateien kompiliert. Anschließend können Sie die Dateien mithilfe einer Methode Ihrer Wahl auf den Zielserver kopieren.

    Hinweis:

    Das Dienstprogramm zum Veröffentlichen einer Website ist in Microsoft Visual Web Developer Express Edition nicht verfügbar.

Zurück nach oben

Hintergrund

Visual Studio enthält das Tool zum Kopieren von Websites, mit dem Dateien der aktuellen Website auf den Zielserver kopiert werden. Außerdem enthält die Anwendung das Dienstprogramm zum Veröffentlichen einer Website, das eine Website in einen Satz ausführbarer Dateien kompiliert. Anschließend können Sie die Dateien mithilfe einer Methode Ihrer Wahl auf den Zielserver kopieren.

Hinweis:

Sie können Websites auch mithilfe eines Webanwendungsprojekts erstellen. In einem Webanwendungsprojekt werden alle Klassendateien in eine einzelne Assembly kompiliert. Weitere Informationen finden Sie unter Übersicht über Webanwendungsprojekte.

Sie können nicht nur eine Website erstellen und sie auf einem Zielserver bereitstellen, sondern auch eine FTP-Website erstellen. In diesem Fall erstellen und bearbeiten Sie die Dateien direkt auf dem Zielserver. Dies stellt eine bequeme Möglichkeit dar, mit einer Website auf einem gehosteten Server zu arbeiten.

Das Tool zum Kopieren von Websites

Das Tool zum Kopieren von Websites ist wie ein FTP-Dienstprogramm aufgebaut. Sie können Ordner auf einem Zielserver öffnen und Dateien zwischen der aktuellen Website und der Zielwebsite hochladen und herunterladen. Das Tool unterstützt außerdem ein Synchronisierungsfeature, das die Dateien beider Websites untersucht und automatisch sicherstellt, dass beide Websites immer über die aktuellen Dateiversionen verfügen.

Hinweis:

Wenn es sich bei dem Zielserver um einen FTP-Server handelt, können die Dateien auf dem Server durch Erstellen einer FTP-Website geöffnet und bearbeitet werden. Weitere Informationen finden Sie unter Über FTP bereitgestellte Websites.

Das Tool zum Kopieren von Websites unterstützt die folgenden Features:

  • Sie können Quelldateien, einschließlich der ASPX-Dateien und Klassendateien, auf den Zielserver kopieren. Bei diesem Szenario werden die Webseiten bei Anforderung dynamisch kompiliert.

  • Sie können Dateien von jeder Art von Website öffnen und kopieren, die von Visual Studio unterstützt wird. Dazu zählen auch lokale Internetinformationsdienste- (IIS), Remote-IIS- und FTP-Websites. Der Zielserver erfordert keine FrontPage-Servererweiterungen.

  • Das Synchronisierungsfeature untersucht die Dateien beider Websites und stellt automatisch sicher, dass beide Websites immer über die aktuellen Dateiversionen verfügen.

  • Vor dem Kopieren der Anwendungsdateien platziert das Tool zum Kopieren von Websites eine Datei mit dem Namen App_offline.htm im Stammverzeichnis der Zielwebsite. Solange die Datei App_offline.htm vorhanden ist, werden alle Anforderungen der Website an diese Datei umgeleitet. Die Datei zeigt eine Meldung an, in der Clients mitgeteilt wird, dass die Website aktualisiert wird. Wenn alle Websitedateien kopiert wurden, löscht das Tool zum Kopieren von Websites die Datei App_offline.htm aus der Zielwebsite.

Das Dienstprogramm zum Veröffentlichen von Websites

Das Dienstprogramm zum Veröffentlichen von Websites kompiliert den Inhalt der Website vor. Dies gilt auch für Webseiten (ASPX-Seiten) und Code. Anschließend wird die Ausgabe in ein Verzeichnis oder an einen Serverspeicherort kopiert, das bzw. den Sie angeben. Sie können die Veröffentlichung direkt als Teil des Vorkompilierungsprozesses durchführen. Alternativ dazu können Sie lokal vorkompilieren und die Dateien dann selbst kopieren. Das Dienstprogramm Website veröffentlichen kompiliert die Website und entfernt den Quellcode aus den Dateien. Das Ergebnis dieses Prozesses sind Stubdateien für die Seiten und kompilierte Assemblys. Wenn Benutzer Seiten anfordern, erfüllt ASP.NET die Anforderung durch den Rückgriff auf die vorkompilierten Assemblys.

Hinweis:

Das Dienstprogramm zum Veröffentlichen von Websites ist in Microsoft Visual Web Developer Express Edition nicht verfügbar.

Webanwendungsprojekte

Als Alternative zur Verwendung des Dienstprogramms zum Veröffentlichen von Websites können Sie Websites erstellen, indem Sie ein Webanwendungsprojekt verwenden. In einem Webanwendungsprojekt werden alle Klassendateien in eine einzelne Assembly kompiliert. Es muss nur diese Assembly zusammen mit den ASPX- und ASCX-Dateien sowie anderen statischen Inhaltsdateien bereitgestellt werden. (Dieses Webanwendungsprojekt-Modell ähnelt dem Modell, das in Visual Studio .NET 2003 verwendet wird.) In diesem Modell werden ASPX-Dateien erst kompiliert, wenn sie im Browser ausgeführt werden. Weitere Informationen über Webanwendungsprojekte finden Sie unter Übersicht über Webanwendungsprojekte.

Auswählen eines Bereitstellungstools

Ob Sie sich für das Tool zum Kopieren von Websites oder für das Dienstprogramm zum Veröffentlichen von Websites entscheiden, hängt davon ab, wie Sie eine Site verwenden und verwalten möchten.

Auswählen des Tools Website kopieren

Die Verwendung des Tools zum Kopieren von Websites hat folgende Vorteile:

  • Zum Bereitstellen müssen Sie die Dateien der Website lediglich auf den Zielcomputer kopieren.

  • Die Bereitstellung auf einem Zielcomputer kann mit jedem beliebigen Verbindungsprotokoll erfolgen, das von Visual Studio unterstützt wird. Sie können in einen freigegebenen Ordner auf einem anderen Computer des Netzwerks kopieren. Sie können das FTP-Protokoll verwenden, um Dateien auf einen Server zu kopieren, oder Sie können das HTTP-Protokoll verwenden, um Dateien auf einen Server zu kopieren, der die FrontPage-Servererweiterungen unterstützt.

  • Sie können direkt auf dem Server in den Seiten Änderungen vornehmen oder Fehler beheben.

  • Wenn Sie mit einem Projekt arbeiten, bei dem die Dateien auf einem zentralen Server gespeichert werden, können Sie mithilfe des Synchronisierungsfeatures sicherstellen, dass lokale und Remotedateien synchronisiert sind.

Die Verwendung des Tools zum Kopieren von Websites hat folgende Nachteile:

  • Die Site wird unverändert kopiert. Dies bedeutet, dass ein Kompilierungsfehler in einer Datei erst dann erkannt wird, wenn die Seite z. B. von einem Benutzer ausgeführt und der Fehler damit ausgelöst wird.

Auswählen des Dienstprogramms Website veröffentlichen

Die Verwendung des Dienstprogramms zum Veröffentlichen von Websites hat folgende Vorteile:

  • Durch den Vorkompilierungsprozess werden Kompilierungsfehler und potentielle Fehler in der Datei Web.config und anderen Dateien, die keinen Code enthalten, leichter erkannt.

  • Der Quellcode wird aus der Website entfernt, bei Bedarf einschließlich des Markups in ASP.NET-Webdateien und Benutzersteuerelementen. Auf diese Weise wird Ihr geistiges Eigentum geschützt und der Zugriff auf den Quellcode der Site für andere Personen erschwert.

  • Da die Seiten der Site bereits kompiliert sind, müssen sie bei der ersten Anforderung nicht dynamisch kompiliert werden. Dies kann die Antwortzeit bei der ersten Anforderung einer Seite reduzieren. (Wenn Seiten dynamisch kompiliert werden, wird die Ausgabe für nachfolgende Anforderungen zwischengespeichert.)

Die Verwendung des Dienstprogramms zum Veröffentlichen von Websites hat folgende Nachteile:

  • Je nach den angegebenen Veröffentlichungsoptionen müssen Sie die Site unter Umständen erneut kompilieren, wenn Sie Änderungen an ihr vornehmen. Daher ist das Dienstprogramm zum Veröffentlichen von Websites für die Entwicklungsphase einer Site, in der Seiten häufig geändert werden, möglicherweise nicht besonders gut geeignet.

  • Das Dienstprogramm zum Veröffentlichen von Websites kann die kompilierte Site nicht auf einem Remoteserver bereitstellen. Es kann nur auf den lokalen Computer oder auf einen anderen Computer im lokalen Netzwerk kopieren.

    Hinweis:

    Das Dienstprogramm zum Veröffentlichen von Websites überschreibt die Dateien im Zielordner und in allen Unterordnern. Stellen Sie sicher, dass die Dateien an einem Speicherort veröffentlicht werden, wo der vorhandene Inhalt gelöscht werden kann.

Verwenden des Tools zum Kopieren von Websites

Sie können Dateien mit dem Tool zum Kopieren von Websites vom lokalen Computer auf einen Stagingserver oder einen Produktionsserver verschieben. Das Tool zum Kopieren von Websites ist besonders nützlich, wenn Sie Dateien auf der Remotesite nicht zum Bearbeiten öffnen können. Mit dem Tool zum Kopieren von Websites können Sie die Dateien auf den lokalen Computer kopieren, sie bearbeiten und anschließend wieder auf die Remotesite kopieren. Des Weiteren können mit dem Tool Dateien von einem Stagingserver auf einen Produktionsserver kopiert werden, nachdem die Entwicklung abgeschlossen wurde.

Hinweis:

Wenn Sie eine Anwendung kopieren, die einen Verweis auf eine im GAC registrierte benutzerdefinierte Komponente enthält, wird die Komponente nicht mit der Anwendung kopiert. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen eines Verweises auf .NET- oder COM-Komponenten in einer Website.

Quellstandort und Remotesite

Das Tool Website kopieren kopiert Dateien zwischen einem Quellstandort und einer Remotesite. Mithilfe dieser Begriffe werden die beiden Sites unterschieden, mit denen das Tool arbeitet. Die Begriffe sind mit den folgenden Bedeutungen belegt:

  • Quellstandort   Der Quellstandort ist die Site, die in Visual Studio momentan geöffnet ist.

  • Remotesite   Die Remotesite ist die Site, auf die Sie Dateien kopieren möchten. Eine Remotesite kann ein Speicherort auf einem anderen Computer sein, auf den Sie mithilfe der FrontPage-Servererweiterungen oder mittels FTP zugreifen können. In diesen Fällen handelt es sich bei der Remotesite tatsächlich um eine Remotesite. Die Remotesite kann jedoch auch eine andere Site auf dem eigenen Computer sein. So können Sie z. B. eine auf dem Computer befindliche Dateisystem-Website auf einer lokalen IIS-Website veröffentlichen, die sich ebenfalls auf dem Computer befindet. Obwohl sich die Site lokal auf dem Computer befindet, kommt ihr in diesem Fall im Tool zum Kopieren von Websites die Rolle der Remotesite zu.

Beachten Sie, dass der Quellstandort nicht notwendigerweise auch die Quelle für das Kopieren ist. Sie können auch Dateien von der Remotesite zum Quellstandort kopieren.

Synchronisieren von Sites

Beim Synchronisieren werden die Dateien auf der lokalen Site und auf der Remotesite untersucht, und es wird sichergestellt, dass auf beiden Sites alle Dateien auf dem aktuellen Stand sind. Wenn z. B. eine Datei auf der Remotesite aktueller als die Version derselben Datei auf der Quellsite ist, wird die Datei beim Synchronisieren von der Remotesite auf die Quellsite kopiert.

Das Tool Website kopieren führt keine Dateien zusammen, die denselben Namen tragen, aber über unterschiedliche Inhalte verfügen. In diesem Fall können Sie bei der Synchronisierung angeben, welche Version einer Datei Sie beibehalten möchten.

Durch die Synchronisierung eignet sich das Tool sehr gut für eine Umgebung mit mehreren Entwicklern, in der die Entwickler Kopien der Website auf den lokalen Computern verwenden. Einzelne Entwickler können ihre letzten Änderungen auf einen freigegebenen Remoteserver kopieren. Gleichzeitig können sie ihre lokalen Computer mit geänderten Dateien von anderen Entwicklern aktualisieren. Neue Entwickler, die an einem Projekt arbeiten, können ebenfalls schnell auf Kopien aller Dateien einer Website zugreifen. Dazu können sie eine lokale Website auf dem lokalen Computer erstellen und diese dann mit der Site auf einem freigegebenen Server synchronisieren.

Dateistatus

Zum Synchronisieren von Dateien benötigt das Tool Website kopieren Informationen über den Zustand der Dateien auf beiden Sites. Zu diesem Zweck verwaltet das Tool Informationen, die sich aus den Timestamps der Dateien sowie weiteren zur Synchronisierung benötigten Informationen zusammensetzen. So verwaltet das Tool z. B. eine Liste, in der die letzte Überprüfung der Dateien verzeichnet ist. Damit kann das Tool beispielsweise bestimmen, ob eine Datei gelöscht wurde.

Wenn Sie eine Verbindung zu einer Site herstellen (oder aktualisieren), vergleicht das Tool die Timestamps der Dateien auf beiden Sites sowie die anderen für beide Sites gespeicherten Informationen. Der Zustand der einzelnen Dateien wird dann gemeldet. In der folgenden Tabelle wird der Status der Dateien aufgeführt.

Status

Beschreibung

Unverändert

Die Datei wurde seit dem letzten Kopiervorgang nicht geändert.

Geändert

Der Timestamp der Datei ist neuer als der Timestamp, der beim letzten Kopiervorgang für die Datei angelegt wurde.

Neu

Die Datei wurde der Site nach dem letzten Kopiervorgang hinzugefügt.

Deleted

Die Datei wurde nach dem letzten Kopiervorgang aus der Site entfernt. Bei Auswahl der Option Seit letztem Kopiervorgang gelöschte Dateien anzeigen im Tool Website kopieren wird im Fenster ein Eintrag für die Datei angezeigt.

Verwenden des Dienstprogramms zum Veröffentlichen von Websites

Mithilfe des Dienstprogramms zum Veröffentlichen von Websites können Sie Ihre Websites veröffentlichen. Die Site wird dabei kompiliert, und die Ausgabe wird an einen von Ihnen angegebenen Speicherort kopiert, z. B. auf einen Produktionsserver.

Hinweis:

Das Dienstprogramm zum Veröffentlichen von Websites ist in Visual Web Developer Express Edition nicht verfügbar.

Beim Veröffentlichen werden folgende Schritte ausgeführt:

  • Vorkompilieren der Seiten, des Quellcodes im Ordner App_Code usw. in ausführbare Dateien.

  • Schreiben der ausführbaren Dateien in einen Zielordner.

    Hinweis:

    Wenn Sie eine Anwendung veröffentlichen, die einen Verweis auf eine im GAC registrierte benutzerdefinierte Komponente enthält, wird die Komponente nicht mit der Anwendung veröffentlicht. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen eines Verweises auf .NET- oder COM-Komponenten in einer Website.

Weitere Informationen finden Sie unter Übersicht über die ASP.NET-Vorkompilierung.

Vorkompilierung

Der erste Schritt beim Veröffentlichen besteht im Vorkompilieren der Website. Der bei der Vorkompilierung durchgeführte Kompilierungsprozess entspricht dem Prozess, der normalerweise durchgeführt wird, wenn eine Seite bei der ersten Anforderung im Browser dynamisch kompiliert wird. Der Vorkompilierungsprozess erzeugt Assemblys aus den Seiten, wobei sowohl das Markup als auch der Code enthalten ist. Des Weiteren werden die in den Ordnern App_Code, App_GlobalResources, App_LocalResources und App_Themes enthaltenen Dateien kompiliert.

Sie können sowohl ASP.NET-Seiten, die aus einer einzigen Datei bestehen, als auch Code-Behind-Seiten kompilieren. Weitere Informationen zu diesen beiden Modellen finden Sie unter Codemodell für ASP.NET-Webseiten.

Der Vorkompilierungsschritt beim Veröffentlichen unterscheidet sich von der Kompilierung, die durchgeführt wird, wenn Sie eine Website in Visual Studio zu Testzwecken erstellen. Beim Erstellen wird die Site oder die aktuelle Seite mitsamt allen abhängigen Dateien kompiliert und anschließend ausgeführt. Der Buildprozess ist eine Form des Testens. Dabei wird jedoch keine Ausgabe erzeugt, die Sie bereitstellen können. Im Gegensatz dazu wird bei der Vorkompilierung während der Veröffentlichung eine Ausgabe generiert, die in einem von Ihnen angegebenen Ordner gespeichert wird und auf einem Produktionsserver bereitgestellt werden kann.

Schreiben der vorkompilierten Ausgabe

Nachdem der Vorkompilierungsprozess abgeschlossen ist, wird die Ausgabe in einen von Ihnen angegebenen Ordner geschrieben. Sie können die Ausgabe in jeden verfügbaren Ordner im Dateisystem schreiben, indem Sie FTP (File Transfer Protocol) oder HTTP verwenden. Sie müssen dabei über die entsprechenden Berechtigungen zum Schreiben auf die Zielsite verfügen.

Hinweis:

Der Veröffentlichungsprozess stellt nur die Dateien bereit, die in den Websiteordnern und deren Unterordnern enthalten sind. Die Datei Machine.config wird nicht bereitgestellt. Deshalb kann sich die Konfiguration des Zielwebservers ggf. von der Konfiguration auf dem Computer unterscheiden. Dies kann sich auf das Verhalten der Anwendung auswirken.

Sie können einen Zielordner auf einem Stagingserver oder einem Produktionsserver angeben. Sie können die Ausgabe auch in einen Ordner auf dem lokalen Computer schreiben. Wenn Sie einen Order auf einem Produktionsserver angeben, können Sie Veröffentlichung und Bereitstellung in einem Schritt durchführen. Wenn Sie die Ausgabe in einen Ordner schreiben, der nicht zu einer Website gehört, können Sie die Ausgabe in einem separaten Schritt auf den Server kopieren.

Hinweis:

Wenn Sie eine vorkompilierte Website mit Visual Studio öffnen, können Sie die Website nicht erstellen. Die Buildoptionen sind deaktiviert. Um eine veröffentlichte Website zu ändern, bearbeiten Sie die Dateien in der ursprünglichen Website, kompilieren die Site neu und veröffentlichen die Site erneut.

Die beim Kompilierungsprozess entstehende Ausgabe umfasst die kompilierten Assemblys für sämtlichen Code und für alle Seiten. Wenn Sie per Option festlegen, dass die vorkompilierte Site aktualisiert werden kann, werden sämtliche Code-Behind-Klassen für die ASPX-Dateien, ASMX-Dateien und ASHX-Dateien zu Assemblys kompiliert. Die ASPX-Dateien, ASMX-Dateien und ASHX-Dateien selbst werden jedoch unverändert in den Zielordner kopiert, sodass Sie nach der Bereitstellung der Site weiterhin Änderungen am Layout vornehmen können. Bei vorkompilierten Sites, die aktualisiert werden können, wird der in Einzeldateiseiten enthaltene Code nicht zu einer Assembly kompiliert. Stattdessen wird er als Quellcode bereitgestellt.

Statische Dateien werden nicht kompiliert. Stattdessen werden sie unverändert in den Ausgabeordner kopiert. Die statischen Dateien umfassen Grafiken, HTM-Dateien und HTML-Dateien, Textdateien und Ähnliches.

Während der Vorkompilierung eventuell auftretende Fehler werden im Ausgabefenster und im Fenster Fehlerliste angezeigt. Wenn während der Vorkompilierung ein Fehler auftritt, kann die Site nicht vollständig kompiliert werden und wird nicht veröffentlicht.

Zurück nach oben

Codebeispiele

Gewusst wie: Kopieren von Websitedateien mit dem Dienstprogramm "Website kopieren"

Gewusst wie: Vorkompilieren von ASP.NET-Websites für die Bereitstellung

Gewusst wie: Signieren von Assemblys für vorkompilierte Websites

Gewusst wie: Erstellen von Assemblys mit Versionsangaben für vorkompilierte Websites

Gewusst wie: Generieren von festen Namen mit dem ASP.NET-Kompilierungstool

Gewusst wie: Konfigurieren von veröffentlichten Websites

Exemplarische Vorgehensweise: Veröffentlichen einer Website

Exemplarische Vorgehensweise: Kopieren einer Website mit dem Tool zum Kopieren von Websites

Zurück nach oben

Siehe auch

Konzepte

Übersicht über Webanwendungsprojekte

Übersicht über die ASP.NET-Vorkompilierung

Referenz

Zurück nach oben