Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Scott Mitchell
Die einfachste Möglichkeit zum Bereitstellen einer ASP.NET Anwendung besteht darin, die erforderlichen Dateien manuell aus der Entwicklungsumgebung in die Produktionsumgebung zu kopieren. In diesem Lernprogramm wird gezeigt, wie Sie einen FTP-Client verwenden, um die Dateien von Ihrem Desktop zum Webhostanbieter abzurufen.
Einführung
Im vorherigen Lernprogramm wurde eine einfache Book Review ASP.NET Webanwendung eingeführt, die aus einer Handvoll ASP.NET Seiten, einer Gestaltungsvorlage, einer benutzerdefinierten Basisklasse Page , einer Reihe von Bildern und drei CSS-Stylesheets besteht. Wir sind jetzt bereit, diese Anwendung für einen Webhostanbieter bereitzustellen, an dem die Anwendung für alle Benutzer mit einer Verbindung zum Internet zugänglich ist!
Aus unseren Diskussionen im Lernprogramm "Bestimmen, welche Dateien bereitgestellt werden müssen" wissen wir, welche Dateien in den Webhostanbieter kopiert werden müssen. (Beachten Sie, dass die kopierten Dateien davon abhängen, ob Ihre Anwendung explizit oder automatisch kompiliert wird.) Aber wie rufen wir die Dateien aus der Entwicklungsumgebung (unserem Desktop) bis zur Produktionsumgebung (dem Webserver, der vom Webhostanbieter verwaltet wird) ab? Das F ile T ransfer P rotocol (FTP) ist ein häufig verwendetes Protokoll zur Übertragung von Dateien von einer Maschine auf eine andere über ein Netzwerk. Eine weitere Option ist FrontPage-Servererweiterungen (FPSE). Dieses Lernprogramm konzentriert sich auf die Verwendung eigenständiger FTP-Clientsoftware zur Bereitstellung der erforderlichen Dateien aus der Entwicklungsumgebung in der Produktionsumgebung.
Hinweis
Visual Studio enthält Tools für die Veröffentlichung von Websites über FTP; Diese Tools sowie ein Blick auf Tools, die FPSE verwenden, werden im nächsten Lernprogramm behandelt.
Um die Dateien mit FTP zu kopieren, benötigen wir einen FTP-Client in der Entwicklungsumgebung. Ein FTP-Client ist eine Anwendung, die darauf ausgelegt ist, Dateien vom Computer zu kopieren, auf dem sie auf einem Computer installiert ist, auf dem ein FTP-Server ausgeführt wird. (Wenn Ihr Webhostanbieter Dateiübertragungen über FTP unterstützt, wie die meisten tun, gibt es einen FTP-Server, der auf seinen Webservern ausgeführt wird.) Es gibt eine Reihe von FTP-Clientanwendungen. Ihr Webbrowser kann sogar als FTP-Client doppelt verwendet werden. Mein Lieblings-FTP-Client und der, den ich für dieses Lernprogramm verwende, ist FileZilla, ein kostenloser Open-Source-FTP-Client, der für Windows, Linux und Macs verfügbar ist. Jeder FTP-Client funktioniert jedoch, daher können Sie jeden Client verwenden, mit dem Sie am bequemsten sind.
Wenn Sie mitmachen, müssen Sie ein Konto bei einem Webhosting-Anbieter einrichten, bevor Sie dieses Tutorial oder nachfolgende durchführen können. Wie im vorherigen Lernprogramm erwähnt, gibt es ein Gaggle von Webhostanbieter-Unternehmen mit einem breiten Spektrum an Preisen, Features und Servicequalität. Für diese Lernprogrammreihe verwende ich Discount ASP.NET als mein Webhostanbieter, aber Sie können zusammen mit jedem Webhostanbieter folgen, solange sie die ASP.NET Version unterstützen, in der Ihre Website entwickelt wird. (Diese Lernprogramme wurden mit ASP.NET 3.5 erstellt.) Da wir die Dateien in diesem und zukünftigen Lernprogrammen mithilfe von FTP zum Webhostanbieter kopieren werden, ist es zwingend erforderlich, dass Ihr Webhostanbieter FTP-Zugriff auf seine Webserver unterstützt. Praktisch alle Webhostanbieter bieten dieses Feature an, sollten aber vor der Registrierung noch einmal überprüfen.
Bereitstellen des Book Review-Webanwendungsprojekts
Erinnern Sie sich daran, dass es zwei Versionen der Book Review-Webanwendung gibt: eine, die mit dem Webanwendungsprojektmodell (BookReviewsWAP) und dem anderen mit dem Project-Modell der Website (BookReviewsWSP) implementiert wurde. Der Projekttyp beeinflusst, ob die Website automatisch oder explizit kompiliert wird, und dieses Kompilierungsmodell bestimmt, welche Dateien bereitgestellt werden müssen. Daher werden wir die Bereitstellung der BookReviewsWAP- und BookReviewsWSP-Projekte separat untersuchen, beginnend mit "BookReviewsWAP". Nehmen Sie sich einen Moment Zeit, um diese beiden ASP.NET Anwendungen herunterzuladen, wenn Sie dies noch nicht getan haben.
Starten Sie das BookReviewsWAP-Projekt, indem Sie zum BookReviewsWAP Ordner navigieren und auf die BookReviewsWAP.sln Datei doppelklicken. Vor der Bereitstellung des Projekts ist es wichtig, es zu erstellen, um sicherzustellen, dass alle Änderungen am Quellcode in der kompilierten Assembly enthalten sind. Um das Projekt zu erstellen, wechseln Sie zum Menü "Erstellen", und wählen Sie die Menüoption "BookReviewsWAP erstellen" aus. Dadurch wird der Quellcode im Projekt in eine einzelne Assembly, BookReviewsWAP.dll, kompiliert, die im Ordner Bin platziert wird.
Wir sind jetzt bereit, die erforderlichen Dateien bereitzustellen! Starten Sie Ihren FTP-Client, und stellen Sie eine Verbindung mit dem Webserver bei Ihrem Webhostanbieter her. (Wenn Sie sich bei einem Webhosting-Unternehmen registrieren, erhalten Sie informationen dazu, wie Sie eine Verbindung mit dem FTP-Server herstellen können. Dies schließt die Adresse für den FTP-Server sowie einen Benutzernamen und ein Kennwort ein.)
Kopieren Sie die folgenden Dateien von Ihrem Desktop in den Stammwebsiteordner ihres Webhostanbieters. Wenn Sie FTP auf den Webserver beim Webhostanbieter übertragen, befinden Sie sich wahrscheinlich im Stammwebsiteverzeichnis. Einige Webhostanbieter haben jedoch einen Unterordner namens www oder wwwroot der als Stammordner für Ihre Websitedateien dient. Schließlich müssen Sie beim FTPing der Dateien möglicherweise die entsprechende Ordnerstruktur in der Produktionsumgebung erstellen – den Bin Ordner, den Fiction Ordner, den Ordner, den Images Ordner usw.
~/Default.aspx~/About.aspx~/Site.master~/Web.config~/Web.sitemap- Der vollständige Inhalt des
StylesOrdners - Der vollständige Inhalt des
ImagesOrdners (und dessen Unterordner,BookCovers) ~/Fiction/Default.aspx~/Fiction/Blaze.aspx~/Tech/Default.aspx~/Tech/CYOW.aspx~/Tech/TYASP35.aspx~/Bin/BookReviewsWAP.dll
Abbildung 1 zeigt FileZilla, nachdem die erforderlichen Dateien kopiert wurden. FileZilla zeigt die Dateien auf dem lokalen Computer auf der linken Seite und die Dateien auf dem Remotecomputer auf der rechten Seite an. Wie in Abbildung 1 dargestellt, befinden sich die ASP.NET-Quellcodedateien, z. B. About.aspx.vb, auf dem lokalen Computer (der Entwicklungsumgebung), wurden aber nicht an den Webhost (die Produktionsumgebung) kopiert, da Codedateien nicht bereitgestellt werden müssen, wenn die explizite Kompilierung verwendet wird.
Hinweis
Es ist kein Problem, die Quellcodedateien auf dem Produktionsserver zu haben, da sie ignoriert werden. ASP.NET verbietet standardmäßig HTTP-Anforderungen an Quellcodedateien, sodass diese selbst dann, wenn sie auf dem Produktionsserver vorhanden sind, für Besucher Ihrer Website nicht zugänglich sind. (Das heißt, wenn ein Benutzer versucht, http://www.yoursite.com/Default.aspx.vb zu besuchen, wird eine Fehlerseite angezeigt, die erklärt, dass .vb-Dateien verboten sind.)
Abbildung 1: Verwenden eines FTP-Clients zum Kopieren der erforderlichen Dateien von Ihrem Desktop auf den Webserver beim Webhostanbieter (Klicken Sie hier, um das Bild mit voller Größe anzuzeigen)
Nach der Bereitstellung Ihrer Website dauert es einen Moment, um die Website zu testen. Wenn Sie einen Domänennamen erworben und die DNS-Einstellungen ordnungsgemäß konfiguriert haben, können Sie Ihre Website besuchen, indem Sie Ihren Domänennamen eingeben. Alternativ sollte Ihr Webhostanbieter Ihnen eine URL zu Ihrer Website bereitgestellt haben, die etwa wie kontoname aussieht. webhostprovider.com oder webhostprovider.com/accountname. Beispielsweise lautet die URL für mein Konto auf Rabatt ASP.NET: http://httpruntime.web703.discountasp.net.
Abbildung 2 zeigt die bereitgestellte Book Reviews-Website. Beachten Sie, dass ich es auf den Servern von Discount ASP.NET unter http://httpruntime.web703.discountasp.net ansehe. Zu diesem Zeitpunkt könnte jeder, der eine Verbindung mit dem Internet hat, meine Website anzeigen! Wie erwartet sieht die Website genauso aus und verhält sich genauso wie beim Testen in der Entwicklungsumgebung.
Hinweis
Wenn beim Anzeigen der Anwendung eine Fehlermeldung angezeigt wird, müssen Sie sicherstellen, dass Sie den richtigen Satz von Dateien bereitgestellt haben. Überprüfen Sie als Nächstes die Fehlermeldung, um festzustellen, ob sie Hinweise zu dem Problem aufgibt. Danach können Sie sich an den Helpdesk Ihres Webhost-Unternehmens wenden oder Ihre Frage in das entsprechende Forum in den ASP.NET Foren posten.
Abbildung 2: Die Website "Buchbewertungen" ist jetzt für alle Personen mit internetverbindung zugänglich (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)
Bereitstellen des Websiteprojekts "Buchüberprüfung"
Bei der Bereitstellung einer ASP.NET Anwendung, die die automatische Kompilierung verwendet, z. B. das BookReviewsWSP-Websiteprojekt, gibt es keine kompilierte Assembly im Bin Ordner. Infolgedessen müssen die Quellcodedateien der Webanwendung in der Produktionsumgebung bereitgestellt werden. Lassen Sie uns diesen Prozess durchgehen.
Wie bei dem Webanwendungsprojekt ist es ratsam, zuerst die Anwendung zu erstellen, bevor Sie sie bereitstellen. Während beim Erstellen eines Websiteprojekts keine Assembly erstellt wird, wird auf Kompilierungszeitfehler auf der Seite überprüft. Besser, diese Fehler jetzt zu finden, anstatt dass ein Besucher Ihrer Website sie für Sie entdeckt!
Nachdem Sie das Projekt erfolgreich erstellt haben, kopieren Sie mit Ihrem FTP-Client die folgenden Dateien in den Stammwebsiteordner ihres Webhostanbieters. Möglicherweise müssen Sie die entsprechende Ordnerstruktur in der Produktionsumgebung erstellen.
Hinweis
Wenn Sie das BookReviewsWAP-Projekt bereits bereitgestellt haben, aber dennoch versuchen möchten, das BookReviewsWSP-Projekt bereitzustellen, löschen Sie zuerst alle Dateien auf dem Webserver, die beim Bereitstellen von BookReviewsWAP hochgeladen wurden, und stellen Sie dann die Dateien für BookReviewsWSP bereit.
~/Default.aspx~/Default.aspx.vb~/About.aspx~/About.aspx.vb~/Site.master~/Site.master.vb~/Web.config~/Web.sitemap- Der vollständige Inhalt des
StylesOrdners - Der vollständige Inhalt des
ImagesOrdners (und dessen Unterordner,BookCovers) ~/App_Code/BasePage.vb~/Fiction/Default.aspx~/Fiction/Default.aspx.vb~/Fiction/Blaze.aspx~/Fiction/Blaze.aspx.vb~/Tech/Default.aspx~/Tech/Default.aspx.vb~/Tech/CYOW.aspx~/Tech/CYOW.aspx.vb~/Tech/TYASP35.aspx~/Tech/TYASP35.aspx.vb
Abbildung 3 zeigt FileZilla nach dem Kopieren der erforderlichen Dateien. Wie Sie sehen können, sind die ASP.NET-Quellcodedateien, wie z. B. About.aspx.vb, sowohl auf dem lokalen Computer (der Entwicklungsumgebung) als auch beim Webhoster (der Produktionsumgebung) vorhanden, da Codedateien bei Verwendung der automatischen Kompilierung deployt werden müssen.
Abbildung 3: Verwenden eines FTP-Clients zum Kopieren der erforderlichen Dateien von Ihrem Desktop auf den Webserver beim Webhostanbieter (Klicken Sie hier, um das Bild mit voller Größe anzuzeigen)
Die Benutzererfahrung ist vom Kompilierungsmodell der Anwendung nicht betroffen. Auf dieselben ASP.NET Seiten kann zugegriffen werden, und sie sehen und verhalten sich gleich, ob die Website mit dem Webanwendungsprojektmodell oder dem Websiteprojektmodell erstellt wurde.
Aktualisieren einer Webanwendung in der Produktion
Webanwendungsentwicklung und -bereitstellung sind kein einmaliger Prozess. Beispielsweise habe ich beim Erstellen der Book Review-Website die verschiedenen Seiten erstellt und den begleitenden Code auf meinem Persönlichen Computer (die Entwicklungsumgebung) geschrieben. Nachdem ich einen bestimmten stabilen Zustand erreicht habe, habe ich meine Anwendung bereitgestellt, damit andere die Website besuchen und meine Rezensionen lesen konnten. Die Bereitstellung markiert jedoch nicht das Ende meiner Entwicklung auf dieser Website. Ich kann weitere Buchrezensionen hinzufügen oder neue Features implementieren, z. B. dass meine Besucher Bücher bewerten oder eigene Kommentare hinterlassen können. Solche Verbesserungen würden in der Entwicklungsumgebung vorgenommen und nach ihrer Fertigstellung bereitgestellt werden müssen. Entwicklung und Bereitstellung sind daher zyklischer Natur. Sie entwickeln eine Anwendung und stellen sie dann bereit. Während die Website live und in der Produktion ist, werden neue Features hinzugefügt, und Fehler werden im Laufe der Zeit behoben, was eine erneute Bereitstellung der Anwendung erfordert. Und so weiter und so weiter.
Wie Sie vielleicht erwarten, müssen Sie beim erneuten Bereitstellen einer Webanwendung nur neue und geänderte Dateien kopieren. Es ist nicht erforderlich, unveränderte Seiten oder server- oder clientseitige Supportdateien erneut bereitzustellen (obwohl dies keinen Schaden hat).
Hinweis
Beachten Sie beim Verwenden der expliziten Kompilierung, dass Sie jedes Mal, wenn Sie dem Projekt eine neue ASP.NET Seite hinzufügen oder codebezogene Änderungen vornehmen, Ihr Projekt neu erstellen müssen, wodurch die Assembly im Bin Ordner aktualisiert wird. Daher müssen Sie diese aktualisierte Assembly beim Aktualisieren einer Webanwendung in der Produktion (zusammen mit den anderen neuen und aktualisierten Inhalten) in die Produktion kopieren.
Beachten Sie außerdem, dass alle Änderungen an Web.config oder den Dateien im Bin-Verzeichnis den Anwendungspool der Website stoppen und neu starten. Wenn Ihr Sitzungszustand mithilfe des InProc Modus (standard) gespeichert wird, verlieren die Besucher Ihrer Website ihren Sitzungszustand, wenn diese Schlüsseldateien geändert werden. Um diese Falle zu vermeiden, sollten Sie Sitzungen mit den Modi StateServer oder SQLServer speichern. Weitere Informationen zu diesem Thema finden Sie unterSession-State Modi.
Denken Sie schließlich daran, dass die erneute Bereitstellung einer Anwendung je nach Anzahl und Größe von Dateien, die in die Produktionsumgebung kopiert werden müssen, von wenigen Sekunden bis zu mehreren Minuten dauern kann. Während dieser Zeit können Benutzer, die Ihre Website besuchen, Fehler oder ungewöhnliches Verhalten erleben. Sie können Ihre gesamte Anwendung "deaktivieren", indem Sie dem Stammverzeichnis Ihrer Anwendung eine Seite App_Offline.htm hinzufügen, die Ihren Benutzern erklärt, dass die Website für die Wartung (oder was auch immer) deaktiviert ist und in Kürze gesichert wird. Wenn die App_Offline.htm Datei vorhanden ist, leitet die ASP.NET Laufzeit alle eingehenden Anforderungen an diese Seite um.
Zusammenfassung
Die Bereitstellung einer Webanwendung erfordert das Kopieren der erforderlichen Dateien aus der Entwicklungsumgebung in die Produktionsumgebung. Die am häufigsten verwendeten Mittel, mit denen Dateien über ein Netzwerk übertragen werden, ist das File Transfer Protocol (FTP), und die meisten Webhostanbieter unterstützen den FTP-Zugriff auf ihre Webserver. In diesem Lernprogramm haben wir erfahren, wie Sie einen FTP-Client verwenden, um die erforderlichen Dateien auf dem Webserver bereitzustellen. Nach der Bereitstellung kann die Website von jedem mit einer Internetverbindung besucht werden!
Glückliche Programmierung!
Weiterführende Lektüre
Weitere Informationen zu den in diesem Lernprogramm erläuterten Themen finden Sie in den folgenden Ressourcen: